簡體   English   中英

Select Prometheus查詢中最大的label值

[英]Select largest label value in Prometheus query

我設置了一個 Prometheus 和 Grafana 實例,我想在其中查詢一個名為“upsAdvBatteryRecommendedReplaceDate”的特定屬性。

Prometheus 在查詢此屬性時成功返回響應,如下所示: Prometheus 中的 upsAdvBatteryRecommendedReplaceDate

但是,結果由兩個時間序列組成(一個具有 upsAdvBatteryRecommendedReplaceDate="12/11/2021",另一個具有 upsAdvBatteryRecommendedReplaceDate="12/10/2021")。

一旦我在 Grafana 中設置了一個顯示 upsAdvBatteryRecommendedReplaceDate 查詢的 upsAdvBatteryRecommendedReplaceDate label 的 singlestat,這就會成為一個問題。 這將導致“多系列錯誤”,如下所示: upsAdvBatteryRecommendedReplaceDate in Grafana

如果我將 Grafana 時間范圍更改為例如“最后 15 分鍾”,它會按預期工作,如下所示: Grafana 中的 upsAdvBatteryRecommendedReplaceDate 具有正確的更換日期

所以我的問題是:有沒有辦法只選擇/提取“upsAdvBatteryRecommendedReplaceDate”的最新/最新 label 值的時間序列,這樣,在這種情況下,只有 upsAdvBatteryRecommendedReplaceDate="12/11/2021" 的時間序列出現?

謝謝!

也許這也能幫助其他人:我通過簡單地選中 grafana 儀表板中 singlestat 的“即時”復選框解決了這個問題。

Prometheus 是一個處理數字的系統,“12/10/2021”是一個字符串而不是一個數字。 如果您可以將數據作為 unix 時間戳公開,那么您可以使用max aggregator 來獲得最高值。

Prometheus 不提供按標簽對時間序列進行排序的功能,之后的第一個時間序列為 select。 但這可以通過limit_offsetsort_by_label MetricsQL 函數來完成。 例如,以下查詢將返回單個metricName時間序列,其最大值為 label upsAdvBatteryRecommendedReplaceDate

limit_offset(1, 0, sort_by_label(metricName, "upsAdvBatteryRecommendedReplaceDate"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM