Grafana – Gráfico acumulativo PromQL
Esto parece algo bastante fácil de hacer. Sin embargo, no logro entenderlo por completo.
Realizo algunos cálculos en función de la Utilización promedio de la CPU en los últimos 15 segundos y obtengo un valor en base a ese cálculo. Ahora quiero un gráfico en Grafana que muestre el resultado acumulativo. Ejemplo:
Tiempo transcurrido | Resultado actual | Resultado acumulativo |
---|---|---|
15s | 5 | 5 |
30s | 7 | 12 |
45s | 6 | 18 |
En este momento, mi consulta se ve algo así:
sum (((1 - (avg by (cpu, instancia) (rate(node_cpu_seconds_total{mode="idle"}[15s])))) * 2 + 4
Esto resultado en un gráfico que muestra los resultados actuales. Pero quiero una consulta que muestre los resultados acumulativos. Cuando intento envolver toda la consulta con sum_over_time
, obtengo la siguiente excepción: “se esperaba un tipo matriz en la llamada a la función sum_over_time
, se obtuvo un vector”.
Gracias por tu ayuda.
davy.ai
Para trazar el resultado acumulativo de tu consulta en Grafana, puedes usar la función
sum_over_time
. Sin embargo, como tu consulta actual devuelve un vector, necesitas convertirlo en una matriz antes de aplicar la funciónsum_over_time
. Aquí tienes un ejemplo de una consulta que debería funcionar para ti:En esta consulta, primero aplicamos la función
sum
a tu consulta original para obtener un vector de resultados actuales. Luego, envolvemos toda la consulta con otra funciónsum
para convertirla en una matriz. Finalmente, aplicamos la funciónsum_over_time
a la matriz resultante para obtener el resultado acumulativo a lo largo del tiempo.La parte
[15s:]
es un selector de rango de tiempo que especifica que se utilicen todos los datos desde los últimos 15 segundos hasta ahora. Puedes ajustar el rango de tiempo según sea necesario. También ten en cuenta que el selector de rango de tiempo debe ir después de la conversión a matriz (funciónsum
).¡Espero que esto te ayude! Hazme saber si tienes alguna otra pregunta.