首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对prometheus警报执行逻辑和两个表达式之间的操作?

问如何对prometheus警报执行逻辑和两个表达式之间的操作?
EN

Stack Overflow用户
提问于 2022-11-18 12:15:47
回答 1查看 20关注 0票数 1

我有两个表达式A和B,并希望创建一个prometheus警报,以便((A != 0) AND (B <30))、PromQL中的and操作符执行set操作。而且A和B的结果也有不同的标签。我能够执行A!=0和B<30,但不知道AND。

A的产出:

​

B的产出:

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-22 10:27:28

默认情况下,普罗米修斯根据and对and左侧和右侧的每对时间序列分别执行这些医生操作,并根据这些医生使用相同的标签集。

在您的示例中,A and B不返回任何内容,因为A返回一个带有空标签集的时间序列,而B返回一个带有非空标记集的时间序列,因此Prometheus无法找到一对具有匹配标签的时间序列来执行and操作。

这可以通过使用on()修饰符来解决,该修饰符指示Prometheus在搜索and运算符左侧和右侧的时间序列匹配对时,要考虑到在and中指定的标签集。因此,下面的查询应该适用于您的情况:

代码语言:javascript
复制
A and on() B

此查询指定on()内部的空标签集,因此Prometheus将A中的任何时间序列与来自B的任何时间序列匹配。见这些文档关于on()修饰符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74489544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档