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

如何编写PromQL查询筛选版本低于同应用最高版本的实例?

正确PromQL表达式

直接可以满足需求的表达式如下:

app_software_version < on(application) group_left max(app_software_version) by (application)

表达式说明

  • 左侧app_software_version是所有实例的原始版本指标,自带application、instance、job全量标签
  • on(application)指定比对时仅匹配application标签,确保实例版本只和自身所属应用的最高版本做比较
  • group_left用于多对一匹配:左侧一个应用对应多个实例指标,右侧一个应用仅有一个最高版本指标,使用该关键字可以保留左侧指标的所有标签,包括你需要的instance
  • 右侧max(app_software_version) by (application)就是你已经算出的各应用最高版本

适配期望输出调整

如果你需要返回值为布尔标识、且去掉多余的job标签,可以调整为如下表达式,和你给出的示例输出完全一致:

(app_software_version < bool on(application) group_left max(app_software_version) by (application)) without(job)

执行后会返回{application="foo", instance="host-2"} 1,其中值为1即对应你需要的True效果,完全可以直接用于告警规则配置:只要表达式返回样本就触发旧版本告警。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:15:06