You need to enable JavaScript to run this app. Prometheus告警:如何将2个相似Counter指标值求和实现单次告警
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus告警:如何将2个相似Counter指标值求和实现单次告警

多实例指标求和、单条告警触发的实现方案

核心原理

原规则每条告警对应一个独立时间序列,要实现仅触发一次告警,只需在增量计算的外层增加聚合逻辑,消除按实例拆分的多序列输出,将所有匹配实例的计算值累加为单值即可。

具体修改点

  • 修正原规则的笔误:原表达式内的指标名ome_metric_counter缺失开头的s,应为some_metric_counter,否则规则无法匹配到任何监控数据
  • 在increase()计算外层包裹sum()聚合函数,将不同实例的3分钟增量值累加为总数值
  • (可选优化)如果需要在告警标签中保留应用标识,可配合by子句指定需要保留的标签维度,避免聚合后丢失应用相关上下文;如果不需要保留任何标签,可直接省略by子句

修改后的完整告警规则

保留应用标签维度的版本:

- alert: someAlertForSomeCounter
    expr: sum by (app, result) (increase(some_metric_counter{app="v1-review-some-app", result="failure"}[3m])) > 0
    labels:
      severity: warning
    annotations:
      summary: Some summary
      description: Consolidated value of counter: {{ $value }}

无额外标签的简化版本:

- alert: someAlertForSomeCounter
    expr: sum(increase(some_metric_counter{app="v1-review-some-app", result="failure"}[3m])) > 0
    labels:
      severity: warning
    annotations:
      summary: Some summary
      description: Consolidated value of counter: {{ $value }}

效果说明

  • 规则会自动对两个实例3分钟内的失败计数增量做求和计算,最终仅返回1个总数值,只会触发1条告警
  • 告警描述中的{{ $value }}会直接传入两个实例的增量总和
  • 注意计算逻辑顺序必须为「先对单个实例的序列计算窗口增量,再做聚合求和」,避免因counter重置、实例重启导致计算值偏差

内容的提问来源于stack exchange,提问作者Jan Carlo Once

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 04:36:07