es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  , , ,

Answer

  1. Avatar for 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 tiempo ts1 y ts2 y agrega una nueva etiqueta inner_ts para identificar cada serie de tiempo:

    ts1
      | join(inner_ts="ts1", ts2)
        on (<condición de="" unión="">)
      | map(to="tsK")
    
    ts2
      | join(inner_ts="ts2", ts1)
        on (<condición de="" unión="">)
      | map(to="tsK")
    

    Tenga en cuenta que debe especificar la <condición de="" unión=""> para definir cómo desea unir las series de tiempo. Puede usar group_left o group_right para conservar todas las etiquetas de la serie de tiempo izquierda o derecha, respectivamente. También puede usar on() 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 reemplazar tsK por cualquier nombre de etiqueta que desee.</condición></condición></condición>

Comments are closed.