[英]Calculate Max in value with prometheus
由於我是普羅米修斯新手,我不知道如何表達這個問題:“最后一天每秒處理的最大消息數是多少”。 該指標名為messages_in_total
我試過了
max_over_time(messages_in_total{}[1d])
- 但是這會返回計數器值的最大值icrease(messages_in_total{}[1d])
- 但是這會返回計數器增加的數字我真正需要的是(偽代碼)
1.) 將包含絕對 messages_in_total 的范圍向量轉換為每秒有一個值的范圍向量。
2.) 充分利用它
例子:
有任何想法嗎?
有可能的。
示例查詢:
max_over_time(
irate( messages_in_total[2m] )[1d:1m]
)
這會:
irate( messages_in_total[2m[ )
有關更多信息,請參閱子查詢文檔! 6. 對於每個
雖然答案返回了過去 24 小時內messages_in_total
指標的最大每秒速率,但它存在以下潛在問題:
scrape_interval
)小於一分鍾,它可能會跳過一部分原始樣本。 這可以通過減少冒號后方括號中的step
值來解決,因此它不會超過scrape_interval
。2m
增加到超過 2x scrape_interval
的值來解決。 雖然 Prometheus 沒有為這些問題提供可靠且易於使用的解決方案,但其他類似 Prometheus 的系統可能有解決方案。 例如,以下MetricsQL查詢返回過去 24 小時內messages_in_total
時間序列的最大、最小和平均每秒增長率:
rollup_rate(messages_in_total[1d])
它使用rollup_rate function。如果您只需要最大每秒速率,則可以將查詢包裝到label_match function 中,這樣只留下rollup="max"
label 的時間序列:
label_match(
rollup_rate(messages_in_total[1d]),
"rollup", "max"
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.