簡體   English   中英

模塊中每個元素的 PromQL

[英]PromQL for each element in module

我有一個普羅米修斯出口商,它給出了以下結果:

# HELP apartment 
# TYPE apartment gauge
apartment{module="ddcga"} 2.323522e+09
# HELP bar 
# TYPE bar gauge
bar{module="ddcga"} 7.50631e+08
[...]

現在我想在 Grafana 中查看這些值,但為了讓它們真正有用,我需要使用delta函數。

對於一個值,這非常簡單: delta(apartment{module="ddcga"}[1h])

但實際上有很多值,手動添加/更改它們是一項大量的工作,而且很容易出錯。

我已經可以僅使用{module="ddcga"}顯示每個值,但使用delta({module="ddcga"}[1h])會給出錯誤execution: vector cannot contain metrics with the same labelset

我怎樣才能使這項工作?

額外的:

Prometheus 在應用各種函數(例如delta() )時會從輸入時間序列中刪除指標名稱。 這導致vector cannot contain metrics with the same labelset ,因為多個輸入時間序列在刪除指標名稱后將具有相同的label=value對集。

這個任務可以通過破解Prometheus 子查詢並結合label_replace()函數來解決。 例如,以下查詢將使用module="ddcgq"標簽以分鍾精度計算每個時間序列前一小時的增量。 內部label_replace()將指標名稱移動到metric_name標簽:

delta(
  label_replace({module="ddcga"}, "metric_name", "$1", "__name__", "(.+)")[1h:1m]
)

PS 這個任務用 VictoriaMetrics 更容易解決——我正在研究的類似 Prometheus 的監控解決方案。 它支持專門針對這種情況的keep_metric_names修飾符:

delta({module="ddcga"}[1h]) keep_metric_names

此查詢返回每個帶有標簽module="ddcga"的指標一小時的增量,同時保持原始指標名稱不變。 MetricsQL 文檔中查看更多詳細信息。

暫無
暫無

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

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