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

如何为不同环境配置可复用的Prometheus告警模板?

Prometheus多环境告警规则复用实现方案

完全可行,核心通过标签注入+告警模板变量引用两个步骤实现,无需重复编写相同逻辑的告警规则。

步骤1:给不同环境的监控目标绑定环境标签

你可以在Prometheus的抓取配置(scrape_configs)中,给dev和prod环境的采集任务分别配置固定的env标签,示例配置如下:

scrape_configs:
  # 开发环境采集任务
  - job_name: "dev-nodes"
    static_configs:
      - targets: ["dev-node1:9100", "dev-node2:9100"]
        labels:
          env: "dev" # 固定注入dev标签
  # 生产环境采集任务
  - job_name: "prod-nodes"
    static_configs:
      - targets: ["prod-node1:9100", "prod-node2:9100"]
        labels:
          env: "prod" # 固定注入prod标签

如果使用服务发现采集,也可以在服务发现的relabel_configs中给不同环境的实例统一追加env标签,效果一致。

步骤2:编写通用告警规则,引用env标签生成标题

仅需编写1套通用告警规则,在annotations的title字段直接引用指标自带的env标签即可,高CPU使用率告警示例如下:

groups:
- name: node-alert
  rules:
  - alert: HighCPUUsage
    expr: 100 - (avg by(instance, env) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
    for: 2m
    labels:
      severity: warning
    annotations:
      # 直接引用env标签填充环境前缀
      summary: "[{{ $labels.env }}] 高CPU使用率告警"
      description: "实例 {{ $labels.instance }} CPU使用率超过80%,当前值为{{ $value | printf \"%.2f\" }}%"

效果验证

告警触发后,dev环境的实例会自动生成标题[dev] 高CPU使用率告警,prod环境的实例自动生成标题[prod] 高CPU使用率告警,完全匹配需求。如果后续需要新增其他环境,仅需在抓取配置中给新环境的实例加上对应env标签即可,无需修改告警规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 20:54:02