2 puntos por dongho42 2024-11-24 | Aún no hay comentarios. | Compartir por WhatsApp
  • Al trabajar con counter en Prometheus, es fácil equivocarse al aplicar funciones solo para counter, como rate, junto con agregaciones
  • En Prometheus, un counter solo 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_total de Node Exporter en ese nodo se reinicia a 0
    • Entonces el valor de sum(...) total disminuye
    • rate() interpreta que el counter se reinició, y se produce un spike incorrecto
      • *si en n el valor disminuye en n-a, desde la perspectiva de rate parecerá que el valor saltó en (n-a)
  • Por lo tanto...
    • rate(counter_a[5m] + counter_b[5m]) así, NO
    • rate(counter_a[5m]) + rate(counter_b[5m]) así, SÍ
  • Esto aplica no solo a sum(), sino también a cosas como min(), max(), avg(), ceil(), histogram_quantile() y predict_linear()
  • Además de rate(), entre las funciones para counter también están irate(), increase() y resets()

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.

Aún no hay comentarios.