[英]Prometheus/PromQL subtract two gauge metrics
我有來自兩個不同實例的這個量規指標“metric_awesome”。 我想做的是像這樣從實例二中減去實例一
metric_awesome{instance="one"} - metric_awesome{instance="two"}
不幸的是,結果集是空的。 有沒有人經歷過這個?
這里的問題是標簽不匹配。 你想要的是:
metric_awesome{instance="one"} - ignoring(instance) metric_awesome{instance="two"}
如果有人搜索這個想要執行此操作的一對多減法,請查看group_right
除了之前寫的內容之外。
metric_awesome{instance="one"} - ignoring(instance) group_right metric_awesome{job="compare-instances"}
另見普羅米修斯文檔
默認情況下,Prometheus 按以下方式執行a - b
:
a
所有時間序列。b
查詢。a
和b
搜索具有相同標簽集的時間序列對。有關詳細信息,請參閱這些文檔。
metric_awesome{instance="one"} - metric_awesome{instance="two"}
返回空結果,因為-
左側的所有匹配時間序列都包含instance="one"
標簽,而右側的所有時間序列side of -
包含instance="two"
標簽。 這里沒有具有相同標簽集的時間序列對。
可以使用on()
、 ignoring( ignoring()
、 group_left()
和group_right()
修飾符更改此行為。
例如, metric_awesome{instance="one"} - ignoring(instance) metric_awesom{instance="two"}
指示在搜索具有相同標簽的時間序列對時忽略instance
標簽。 當一側的多個時間序列匹配另一側-
單個時間序列時,這可能會導致多對一匹配。 默認情況下,Prometheus 在這種情況下會返回錯誤。 這可以通過向-
運算符添加group_left()
或group_right()
修飾符來解決:
metric_awesome{instance="one"}
- ignoring(instance) group_left()
metric_awesome{instance="two"}
要么
metric_awesome{instance="one"}
- ignoring(instance) group_right()
metric_awesome{instance="two"}
有關這些修飾符的更多詳細信息,請參閱這些文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.