2 points par dongho42 2024-11-24 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Lorsqu’on manipule des compteurs dans Prometheus, il est facile de se tromper en appliquant des fonctions réservées aux compteurs comme rate ainsi que des agrégations
  • Dans Prometheus, un compteur ne peut que « augmenter », « rester inchangé » ou « être réinitialisé »
  • Si l’on veut obtenir le taux de requêtes par seconde de Node Exporter, on peut écrire une requête comme celle-ci ?
    • sum by (job)(rate(http_requests_total{job="node"}[5m]))
  • Mais alors, qu’en est-il de la requête suivante ?
    • rate(sum by (job)(http_requests_total{job="node"})[5m])
    • Cette requête pose problème
  • Si un nœud redémarre, alors http_requests_total du Node Exporter sur ce nœud est réinitialisé à 0
    • Dans ce cas, la valeur de sum(...) globale diminue
    • rate() considère alors que le compteur a été réinitialisé, ce qui crée un pic erroné
      • *si la valeur baisse de n à n-a, du point de vue de rate, cela revient à un saut de (n-a)
  • Donc...
    • rate(counter_a[5m] + counter_b[5m]) : NON
    • rate(counter_a[5m]) + rate(counter_b[5m]) : OUI
  • Cela vaut aussi non seulement pour sum(), mais également pour min(), max(), avg(), ceil(), histogram_quantile() et predict_linear()
  • Outre rate(), il existe aussi pour les compteurs des fonctions comme irate(), increase() et resets()

Les résumés marqués d’un * sont des explications ajoutées qui ne figurent pas dans le texte original.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.