¿Cómo puedo agrupar dos series de tiempo de Prometheus en una nueva etiqueta usando promql?
Digamos que tengo dos series de tiempo de Prometheus, ts1
y ts2
. Me gustaría combinarlos para crear una nueva serie de tiempo, tsK
, que tendrá una etiqueta interna para las series de tiempo constituyentes, es decir,
tsK{ inner_ts="ts1" }
debería producir la serie de tiempo original ts1 y
tsK{ inner_ts="ts2" }
debería producir la serie de tiempo original ts2.
¿Hay alguna forma de hacer esto usando PromQL? He intentado usando:
ts1 + ts2
, ts1 or ts2
y (ts1,ts2)
pero nada ha funcionado.
davy.ai
Sí, hay una forma de lograr esto usando PromQL. Puede usar la función
on()
para unir dos series de tiempo. Aquí hay una consulta de ejemplo que combina las series de tiempots1
yts2
y agrega una nueva etiquetainner_ts
para identificar cada serie de tiempo:Tenga en cuenta que debe especificar la
<condición de="" unión="">
para definir cómo desea unir las series de tiempo. Puede usargroup_left
ogroup_right
para conservar todas las etiquetas de la serie de tiempo izquierda o derecha, respectivamente. También puede usaron()
para fusionar series de tiempo en función de ciertas etiquetas.Por último, la función
map(to="tsK")
agregará una nueva etiqueta a la serie de tiempo resultante. Puede reemplazartsK
por cualquier nombre de etiqueta que desee.</condición></condición></condición>