• Prometheus में counter को संभालते समय, rate जैसे सिर्फ counter के लिए बने functions और aggregation को साथ में इस्तेमाल करते हुए गलती करना आसान है
  • Prometheus में counter सिर्फ बढ़ सकता है, जैसा है वैसा रह सकता है, या reset हो सकता है
  • अगर आप Node Exporter का प्रति-सेकंड request rate निकालना चाहते हैं, तो क्या आप यह query लिख सकते हैं?
    • sum by (job)(rate(http_requests_total{job="node"}[5m]))
  • लेकिन? यह query कैसी है?
    • rate(sum by (job)(http_requests_total{job="node"})[5m])
    • इस query में समस्या है
  • मान लीजिए कोई node restart हो गया, तो उस node पर Node Exporter का http_requests_total 0 पर reset हो जाएगा
    • तब पूरे sum(...) का मान कम हो जाएगा
    • rate() इसे counter reset समझेगा, और गलत spike पैदा होगा
      • *अगर मान n से n-a तक गिरता है, तो rate के नज़रिए से यह (n-a) जितना उछाल दिखेगा
  • इसलिए...
    • rate(counter_a[5m] + counter_b[5m]) इस तरह करना NO
    • rate(counter_a[5m]) + rate(counter_b[5m]) इस तरह करना YES
  • यह बात सिर्फ sum() पर नहीं, बल्कि min(), max(), avg(), ceil(), histogram_quantile(), predict_linear() जैसी चीज़ों पर भी लागू होती है
  • counter के लिए rate() के अलावा irate(), increase(), resets() जैसे functions भी हैं

* लगे हुए सारांश मूल लेख में नहीं थे; उन्हें अलग से चिह्नित किया गया है.

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.