PromQL: cómo combinar “sum_over_time” con “by” PromQL: cómo combinar “sum_over_time” con “by”.
Estoy tratando de escribir una consulta que devuelva la siguiente información:
para la métrica m1 (de tipo contador) – devolver la suma de los valores, agrupados por (p1,p2) en una ventana deslizante de 1h.
Creo que la base debería ser algo como:
sum_over_time(m1[1h])
pero esto no puede agruparse por (p1,p2).
Una forma de hacer el agrupamiento es usando:
sum(sum_over_time(m1[1h])) by (p1, p2)
pero no estoy seguro si agregar la suma externa aquí, solo para agrupar, es la manera correcta de hacerlo.
Otra posibilidad es hacer:
topk(100, sum_over_time(m1[1h])) by (p1, p2)
pero en este caso, el agrupamiento no parece funcionar correctamente, ya que los resultados contienen muchas filas con el mismo (p1,p2) y diferentes en algunas etiquetas (p3,p4).
¿Cuál es la forma correcta de sumar una métrica en una ventana deslizante, por algunas etiquetas?
davy.ai
Como experto en TI especializado en Grafana y PromQL, sugiero usar la siguiente consulta para obtener la información requerida:
Esta consulta utiliza la función
rate
para calcular la tasa de aumento por segundo de la métrica m1 en la última ventana de 1 hora. Luego, agrupa los resultados por las etiquetas p1 y p2 y suma los valores de cada grupo.Esta consulta devolverá la suma de los valores de la métrica m1, agrupados por (p1, p2) en una ventana deslizante de 1 hora, sin necesidad de una suma externa o utilizando la función
topk
.