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

如何配置Prometheus丢弃指定标签不存库但传递给Alertmanager

实现方案:Prometheus丢弃标签不存库但告警时传给Alertmanager

可以实现,核心思路是分离存储用指标和告警用指标:保留原始带全标签的指标用于告警判断,通过记录规则生成不带目标标签的指标存入数据库,具体步骤如下:

  • 第一步:不要用metric_relabel_configs丢弃my_instance_id标签
    若提前在指标入库前丢弃该标签,告警规则将无法获取到它,所以必须让原始指标完整保留所有标签进入Prometheus。

  • 第二步:用记录规则生成精简版指标用于存储
    创建记录规则,复制原始指标但移除my_instance_id标签,生成新指标供长期存储。示例配置:

    groups:
    - name: stripped_metrics
      rules:
      - record: up_stripped
        expr: up
        relabel_configs:
        - action: labeldrop
          regex: my_instance_id
    

    这里up_stripped就是去掉了my_instance_id的指标,会被Prometheus存入TSDB,而原始up指标仍保留所有标签。

  • 第三步:基于原始指标编写告警规则
    告警规则直接使用带全标签的原始指标,这样触发告警时my_instance_id会被包含在告警元数据中,传递给Alertmanager。示例告警规则:

    groups:
    - name: instance_alerts
      rules:
      - alert: InstanceDown
        expr: up == 0
        for: 1m
        annotations:
          summary: "实例 {{ $labels.instance }} (ID: {{ $labels.my_instance_id }}) 已下线"
    

    Alertmanager就能在告警文本中引用my_instance_id标签。

  • (可选)优化存储占用
    若担心原始指标占用过多存储,可通过Prometheus的存储配置,缩短原始指标的保留时间,同时让记录规则生成的精简指标保留更长时间:

    storage:
      tsdb:
        retention: 1h  # 原始指标仅保留1小时,足够告警判断即可
      rules:
        retention: 30d  # 精简指标保留30天用于历史分析
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:03:10