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

共享Timescale库场景下Alertmanager如何按指定标签过滤告警

Prometheus仅筛选特定标签告警的配置方案

你可以通过三层过滤机制实现需求,从上游到下游逐层过滤,兼顾效率和可靠性:

1. 远程读取阶段过滤(最高效,推荐优先配置)

在remote_read配置中新增required_matchers参数,直接从共享的Timescale数据库中仅拉取符合指定标签的指标,避免无用数据同步到本地Prometheus占用资源。
示例配置(以筛选标签team=mybiz为例):

remote_read:
  - url: https://promscale.host:9201/read
    read_recent: true
    # 新增匹配规则,仅拉取带指定标签的指标
    required_matchers:
      team: mybiz

2. 告警规则层面过滤

在告警规则的查询表达式中强制添加标签匹配条件,作为第二层过滤,也支持不同告警规则适配不同的标签筛选逻辑。
示例告警规则配置:

groups:
- name: business-alerts
  rules:
  - alert: HighCpuUsage
    # 查询语句中添加指定标签匹配
    expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{team="mybiz", env="prod", mode="idle"}[5m])) * 100) > 90
    for: 3m
    labels:
      severity: warning
    annotations:
      summary: "实例 {{ $labels.instance }} CPU使用率过高"

3. 告警推送前最终过滤(alert_relabel_configs用法说明)

alert_relabel_configs作用于告警触发后、推送给Alertmanager之前的阶段,作为最后一道防线,丢弃所有不符合标签要求的告警,避免误发。
示例配置:

alerting:
  alertmanagers:
  - static_configs:
    - targets: ['localhost:9093']
  # 新增告警重标签规则
  alert_relabel_configs:
    # 仅保留带有team=mybiz标签的告警
    - source_labels: [team]
      regex: mybiz
      action: keep
    # 如需同时匹配多个标签,可追加规则,例:仅保留env=prod的告警
    - source_labels: [env]
      regex: prod
      action: keep

如果需要匹配多个标签值,可使用正则语法,比如筛选team为mybiz或infra的告警,将regex改为mybiz|infra即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:24:07