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

如何合并两个Prometheus布尔查询并按指定逻辑输出结果?

Prometheus布尔查询合并实现

基础查询(均输出布尔值)

  • Query1:
state{token="59cdefc6f4e9ac94"} == 1
  • Query2:
state{token="c86fc1f35d479759"} == 0

合并规则

  • 当Query2能查到结果时,执行逻辑与运算:
    • 1 与 1 → 返回1
    • 1 与 0 → 返回0
    • 0 与 1 → 返回0
    • 0 与 0 → 返回0
  • 当Query2无结果时,直接返回Query1的结果

最终可用的PromQL语句

用以下查询就能实现上述逻辑:

(bool state{token="59cdefc6f4e9ac94"} == 1) and on() (bool state{token="c86fc1f35d479759"} == 0 or vector(1))

逻辑说明

  • 当Query2存在结果时,vector(1)会被忽略,直接用Query2的布尔值和Query1做逻辑与;
  • 当Query2无结果时,vector(1)会生成一个值为1的虚拟序列,此时逻辑与就等价于直接返回Query1的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:07:11