You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Prometheus告警中对标签不同的两个表达式执行逻辑AND运算?

解决PromQL中不同标签指标的逻辑AND告警问题

当你需要对标签不同的两个PromQL表达式A != 0和B < 30实现逻辑AND运算时,由于默认的and是集合匹配(要求标签完全一致),可以根据具体需求选择以下方案:

方案1:转为布尔逻辑判断

使用bool修饰符将集合匹配转为纯逻辑判断,返回1(满足)或0(不满足):

(A != 0) bool and (B < 30)

当两个条件同时成立时,结果为1,否则为0。适合不需要保留原始指标标签、仅判断整体是否满足的场景。

方案2:基于共同标签匹配

如果A和B存在共同标签(比如instance、job),可以用on()或ignoring()指定匹配标签,只保留同时满足两个条件的实体:

(A != 0) and on(instance) (B < 30)

示例中以instance为匹配标签,只有当同一instance下A != 0且B < 30时,才会输出该instance的指标。

方案3:判断两个条件是否各自存在满足的样本

如果不需要关联实体,仅需判断“存在至少一个A!=0的样本,且存在至少一个B<30的样本”,可以用count()聚合:

count(A != 0) > 0 and count(B < 30) > 0

当两个条件都有至少一个样本满足时,结果为1,触发告警。

内容的提问来源于stack exchange,提问作者Shobhit Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:20:54