• PromQL में per-second rate की गणना के लिए इस्तेमाल होने वाले rate और irate
  • यह गलतफ़हमी मौजूद है कि irate [range] के दौरान आने वाले spike को पकड़ता है, और rate इन spike का औसत निकालता है
  • irate केवल आख़िरी दो data points का per-second rate गणना करता है
  • query_range की हर query में कौन-से आख़िरी दो data points दिखेंगे, यह start, end, step parameters पर निर्भर करता है
    • इसलिए irate पर निर्भर dashboard zooming और scrolling के अनुसार काफ़ी बदल सकता है
  • तेज़ी से बदलने वाले counter में irate से सभी spike पकड़ना मुश्किल है

  • MetricsQL (PromQL के साथ अधिकांशतः compatible Query Language) इसके लिए rollup_rate function को support करता है
  • यह function हर आस-पास के data point pair के बीच rate निकालता है और उसका min, avg, max लौटाता है
  • इसलिए सभी spike को लगातार min और max में पकड़ा जा सकता है
  • अगर इसे सीधे dashboard में visualize करें, तो rollup_rate(min) <= irate <= rollup_rate(max) को संतुष्ट करने वाला एक band देखा जा सकता है

  • irate के बारे में एक और गलतफ़हमी यह है कि यह rate से तेज़ है
  • शायद ऐसा इसलिए लगता है क्योंकि यह [range] interval में दिए गए data points में से केवल आख़िरी दो को देखता है?
    • लेकिन वास्तव में Prometheus सबसे ज़्यादा CPU time तब खर्च करता है जब query_range API का उपयोग करते समय [start...end] interval से data points निकाले जाते हैं
    • कौन-सा function इस्तेमाल किया जा रहा है, इसका performance पर बहुत बड़ा असर नहीं पड़ता

ब्लॉग पोस्ट में यह बात समझाई नहीं गई है, इसलिए जोड़ दें कि rollup_rate के rollup="avg" value का उपयोग करने और rate पर साधारण avg लगाने के बीच का अंतर MetricsQL डेवलपर के एक अन्य जवाब में देखा जा सकता है।

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

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