2 puan yazan dongho42 2024-11-24 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Prometheus'ta counter ile çalışırken, rate gibi yalnızca counter için olan fonksiyonlar ile aggregation birlikte uygulanırken yapılması kolay bir hata var
  • Prometheus'ta counter yalnızca "artabilir", "aynı kalabilir" ya da "sıfırlanabilir"
  • Node Exporter'ın saniye başına istek oranını bulmak istediğinizde şu sorguyu yazabilirsiniz?
    • sum by (job)(rate(http_requests_total{job="node"}[5m]))
  • Peki ya şu sorgu?
    • rate(sum by (job)(http_requests_total{job="node"})[5m])
    • Bu sorguda bir sorun var
  • Diyelim ki bir düğüm yeniden başlatıldı; o düğümdeki Node Exporter'ın http_requests_total değeri 0'a sıfırlanır
    • O zaman toplam sum(...) değeri düşer
    • rate(), bunun counter'ın sıfırlanması olduğunu düşünüp hatalı bir spike üretir
      • *değer n'den n-a'ya düşerse, rate bunu kendi açısından (n-a) kadar bir sıçrama olmuş gibi görür
  • Dolayısıyla...
    • rate(counter_a[5m] + counter_b[5m]) yapmak NO
    • rate(counter_a[5m]) + rate(counter_b[5m]) yapmak ise YES
  • Bu durum yalnızca sum() için değil, min(), max(), avg(), ceil(), histogram_quantile(), predict_linear() gibi fonksiyonlar için de geçerli
  • Counter ile ilgili fonksiyonlar arasında rate() dışında irate(), increase(), resets() de var

* işareti olan özet, özgün metinde olmayan ek bir açıklama olduğu için ayrıca belirtilmiştir.

Henüz yorum yok.

Henüz yorum yok.