如何按逻辑与规则合并两个返回布尔值的Prometheus查询
合并两个Prometheus布尔查询实现逻辑与操作
你需要将两个返回布尔值(1代表真,0代表假)的Prometheus查询,按照**逻辑与(AND)**规则合并:仅当两个查询都返回1时结果为1,其余情况均为0。
原始查询
- Query1:
state{token="59cdefc6f4e9ac94"} - Query2:
state{token="c86fc1f35d479759"}
合并方案
以下两种方式均可实现需求:
方案1:利用乘法运算
布尔值1和0的乘法结果完全匹配逻辑与规则,直接将两个查询相乘即可:
state{token="59cdefc6f4e9ac94"} * state{token="c86fc1f35d479759"}
- 当Q1=1且Q2=1时,结果=1×1=1
- 其他组合(1×0、0×1、0×0)结果均为0
方案2:使用布尔匹配+逻辑与
通过bool关键字将比较结果转为布尔值,再用and操作符实现逻辑与:
bool (state{token="59cdefc6f4e9ac94"} == 1) and (state{token="c86fc1f35d479759"} == 1)
- 仅当两个查询都等于1时返回1,否则返回0
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

