rate y luego sum, SÍ; sum y luego rate, NO
(robustperception.io)- Al trabajar con
counteren Prometheus, es fácil equivocarse al aplicar funciones solo paracounter, comorate, junto con agregaciones - En Prometheus, un
countersolo puede "aumentar", "mantenerse" o "reiniciarse" - Si quieres obtener la tasa de solicitudes por segundo de Node Exporter, ¿podrías escribir una consulta como esta?
sum by (job)(rate(http_requests_total{job="node"}[5m]))
- Pero, ¿qué pasa con una consulta como esta?
rate(sum by (job)(http_requests_total{job="node"})[5m])- Esta consulta tiene un problema
- Si un nodo se reinicia,
http_requests_totalde Node Exporter en ese nodo se reinicia a 0- Entonces el valor de
sum(...)total disminuye rate()interpreta que elcounterse reinició, y se produce un spike incorrecto- *si en n el valor disminuye en n-a, desde la perspectiva de
rateparecerá que el valor saltó en (n-a)
- *si en n el valor disminuye en n-a, desde la perspectiva de
- Entonces el valor de
- Por lo tanto...
rate(counter_a[5m] + counter_b[5m])así, NOrate(counter_a[5m]) + rate(counter_b[5m])así, SÍ
- Esto aplica no solo a
sum(), sino también a cosas comomin(),max(),avg(),ceil(),histogram_quantile()ypredict_linear() - Además de
rate(), entre las funciones paracountertambién estánirate(),increase()yresets()
Los resúmenes marcados con * se señalaron aparte porque son explicaciones complementarias que no aparecen en el texto original.
Aún no hay comentarios.