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

如何让PromQL查询返回1/0以判断两个结果是否一致?

解决方案

要实现两个PromQL查询结果相等时返回1、不等时返回0,只需在比较运算符==前添加bool修饰符即可,具体查询语句如下:

sum by (cluster) (
    cnp_pg_replication_slots_active{
       role="primary",
       cluster="p-vpt7bgc20z"
    } == 1
)  == bool sum by (cluster) (
    cnp_collector_up { 
        role="replica",
        cluster="p-vpt7bgc20z"
    }
)

原查询的问题说明

PromQL默认的==是集合匹配模式:只有标签完全匹配且数值相等的元素才会被保留,返回值为1;若数值不等或标签不匹配,对应的序列会被直接过滤,不会返回0。添加bool修饰符后,会切换为标量比较模式,对每个标签匹配的元素直接返回1(相等)或0(不等),确保无论结果是否相等都能得到明确的0/1布尔数值。

内容的提问来源于stack exchange,提问作者Murtuza Z

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:52:11