You need to enable JavaScript to run this app. PromQL是否支持类似左外连接的查询,可获取两个指标的差集?
优惠活动
大模型
产品
解决方案
定价
更多

PromQL是否支持类似左外连接的查询,可获取两个指标的差集?

PromQL单边存在指标查询方案

核心实现方法

你需要的「以item_stock为基准,筛选出不存在对应name标签的item_purchases记录的序列」需求,可以直接用PromQL原生的unless集合差集运算符实现,无需引入其他方案。

适用当前场景的查询语句

item_stock unless on(name) item_purchases

语句说明

  • A unless B 是PromQL的集合运算符,返回结果为A中所有和B没有匹配到相同标签组合的时间序列
  • on(name) 指定仅通过name标签做两个指标的关联匹配,忽略其他标签差异
  • 执行上述语句后会直接返回你需要的item_stock{name="item3", in_stock="1"}结果

原有查询问题说明

你之前使用的* on (name) group_left()属于二元算术运算的多对一匹配逻辑,仅会返回两边指标都匹配到的序列,天然会丢弃仅单边存在的记录,不适用于当前差集筛选的场景。

告警与Dashboard实践

  • 告警规则直接使用上述查询作为expr即可,只要查询返回结果非空就触发告警,完全匹配「实体仅在其中一个指标上报」的触发条件
  • 如果需要反向筛选(item_purchases存在但item_stock不存在的序列),调换两个指标的顺序即可:
item_purchases unless on(name) item_stock

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 06:06:06