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

如何在Prometheus中跟踪应用版本并实现版本变更告警?

在Prometheus中跟踪应用版本并实现变更告警

核心逻辑

Prometheus确实会将「指标名称+标签组合」视为独立时间序列,这一点刚好可以用来跟踪版本变更——每次部署新版本时,带新版本标签的gauge指标会生成新的时间序列,旧版本的序列则停止更新(值保持不变)。我们可以利用这个特性检测版本变更,再关联异常指标实现针对性告警。

具体实现方案

1. 正确暴露版本指标

继续使用你提到的常量gauge指标,示例如下:

# HELP app_info 应用版本与构建信息
# TYPE app_info gauge
app_info{version="v1.2.3", commit="a1b2c3d"} 1

指标值固定为1,仅通过version和commit标签区分不同版本的时间序列。

2. 检测版本变更的PromQL查询

可以通过对比不同时间窗口的版本序列来识别变更:

  • 检查最近10分钟内新出现的版本序列(即刚完成部署的新版本):
app_info unless app_info offset 10m
  • 或者对比当前版本与10分钟前的版本是否不一致:
last_over_time(app_info[1m]) != last_over_time(app_info[1m] offset 10m)

注:10m的时间可根据你的部署频率调整,确保覆盖旧版本的存活周期。

3. 关联版本变更与异常指标告警

要实现「版本变更后出现异常就告警」,可以把版本变更作为前置条件,结合错误响应率等指标。例如,检测版本变更后5分钟内错误率超过5%:

sum(rate(http_requests_total{status=~"5.."}[5m])) by (instance, version) 
  / 
sum(rate(http_requests_total[5m])) by (instance, version) 
> 0.05
and
app_info unless app_info offset 5m

这个查询只会在最近5分钟内有版本变更的实例中,检查错误率是否超标。

4. 告警规则配置示例

在Prometheus的告警规则文件中,可以这样定义规则:

groups:
- name: app_version_alerts
  rules:
  - alert: AppVersionChanged
    expr: app_info unless app_info offset 10m
    for: 1m
    labels:
      severity: info
    annotations:
      summary: "应用版本变更"
      description: "实例 {{ $labels.instance }} 已更新至版本 {{ $labels.version }} (Commit: {{ $labels.commit }})"

  - alert: HighErrorRateAfterVersionChange
    expr: |
      sum(rate(http_requests_total{status=~"5.."}[5m])) by (instance, version) 
      / 
      sum(rate(http_requests_total[5m])) by (instance, version) 
      > 0.05
      and
      app_info unless app_info offset 5m
    for: 2m
    labels:
      severity: critical
    annotations:
      summary: "版本变更后错误率过高"
      description: "实例 {{ $labels.instance }} 更新到版本 {{ $labels.version }} 后,错误率达到 {{ $value | humanizePercentage }}"

注意事项

  • 调整offset时间范围:根据应用部署流程和Prometheus采集间隔设置,确保旧版本序列在offset时间内仍可被查询到
  • 保留足够历史数据:确保Prometheus的存储时长覆盖你需要对比的版本变更周期
  • 按实例维度聚合:多实例部署时,一定要通过instance标签拆分,避免不同实例的版本变更互相干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:02:43