2 poin oleh dongho42 2024-11-24 | Belum ada komentar. | Bagikan ke WhatsApp
  • Saat menangani counter di Prometheus, ada hal yang mudah keliru ketika menerapkan fungsi khusus counter seperti rate dan agregasi
  • Di Prometheus, counter hanya bisa: "bertambah", "tetap", atau "direset"
  • Saat ingin menghitung laju permintaan per detik dari Node Exporter, kita bisa menulis kueri seperti berikut?
    • sum by (job)(rate(http_requests_total{job="node"}[5m]))
  • Lalu? Bagaimana dengan kueri berikut?
    • rate(sum by (job)(http_requests_total{job="node"})[5m])
    • Kueri ini bermasalah
  • Jika suatu node direstart, maka http_requests_total dari Node Exporter di atas node tersebut akan direset ke 0
    • Maka nilai total sum(...) akan menurun
    • rate() akan menganggap counter telah direset, sehingga muncul spike yang keliru
      • *jika nilainya turun dari n menjadi n-a, dari sudut pandang rate nilainya akan terlihat melonjak sebesar (n-a)
  • Karena itu...
    • rate(counter_a[5m] + counter_b[5m]) seperti ini NO
    • rate(counter_a[5m]) + rate(counter_b[5m]) seperti ini YES
  • Ini berlaku bukan hanya untuk sum(), tetapi juga untuk min(), max(), avg(), ceil(), histogram_quantile(), predict_linear() dan sejenisnya
  • Selain rate(), fungsi untuk counter juga mencakup irate(), increase(), dan resets()

Ringkasan bertanda * adalah penjelasan tambahan yang tidak ada di naskah asli, sehingga ditandai terpisah.

Belum ada komentar.

Belum ada komentar.