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

如何为含唯一标签的Prometheus事件指标配置1小时自动关闭告警?

事件类Prometheus指标的告警规则实现方案

核心告警规则代码

针对你的需求,直接通过指标存在性+时间戳判断实现告警触发与1小时自动关闭,无需依赖changes/increase这类衍生函数:

groups:
- name: event_monitoring_alerts
  rules:
  - alert: EventTriggered
    # 表达式逻辑:匹配所有带UID标签的事件指标,且事件发生时间未超过1小时
    expr: event_occurred{uid=~".+"} == 1 and time() - timestamp(event_occurred{uid=~".+"}) < 3600
    for: 0m  # 事件触发后立即告警,无延迟
    labels:
      severity: warning
    annotations:
      summary: "事件触发: UID {{ $labels.uid }}"
      description: "唯一标识为{{ $labels.uid }}的事件已触发,告警将在1小时后自动关闭"

关键逻辑说明

  • 规避衍生函数限制:直接匹配event_occurred指标(替换为你的实际指标名)的存在性,只要指标存在且值符合条件(这里假设事件触发时指标值为1),就能触发告警,完美解决新指标无法被changes/increase识别的问题。
  • 1小时自动关闭:通过time() - timestamp(...) < 3600计算事件发生时长,当超过1小时后,表达式结果为false,Prometheus会自动将对应UID的告警标记为resolved状态,实现自动关闭。
  • UID标签传递:在告警的annotations中通过{{ $labels.uid }}直接引用指标的唯一UID标签,确保每条告警都绑定对应事件的标识。

适配调整建议

  • 如果你的事件指标值不是固定为1,可将表达式中的==1改为符合业务的判断(比如!=0)。
  • 若应用生成指标时未显式设置时间戳,Prometheus会用采集时间作为timestamp()的返回值,不影响整体逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:15:22