Agent Skills
返回列表
Prometheus 告警规则测试器

Prometheus 告警规则测试器

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/prometheus-alert-rule-tester。

技能介绍

要解决的问题

promtool check rules 只能回答「语法对不对」。规则进入 prometheus-rules 之后,它是否真的会在指标恶化时触发,大多要等线上演练,甚至等到故障当天。届时才发现是 for 时长过长、标签选择器写错,或路由到了错误的 receiver,代价已经产生。这个技能补上的正是这段验证链路。

技能如何工作

核心思路是拿历史指标做回放,而不是只做静态检查。具体分三层:

  • PromQL 校验:解析规则文件,确认表达式合法、引用的指标真实存在,避免指标不存在导致的静默不触发。
  • 触发模拟:向 Prometheus HTTP API 的 query_range 端点提交规则中的表达式,在指定历史窗口内拉取时序数据,据此判断实例是否应处于 firing 状态,for 条件按真实数据推进。
  • 路由核对:在 firing 结果之上检查告警的 labels 与 annotations,确认它进入预期的 receiver,而不是被静默丢弃或分到错误的分组。

适用边界与注意点

  • 需要有可用的 Prometheus 实例暴露 query_range;promtool 负责本地规则解析,两者配合才能跑通完整链路。
  • 回放结论依赖历史数据的保留时长与采样粒度。若窗口内的指标已被滚动删除,模拟结果就不完整,不能当作可靠依据。
  • 该技能验证的是规则逻辑与路由,不覆盖 alertmanager 自身的高可用、抑制规则与分组收敛配置。

截图预览

使用场景

  • 新告警规则上线前,需要确认它在真实指标恶化时能触发,而不只是通过静态语法检查。
  • 排查线上从未触发的告警,需要拿历史时间段的指标数据回放,确认 PromQL 表达式是否正确。
  • 调整了告警表达式的阈值和 `for` 时长,需要验证修改后的规则在既有指标上何时真正触发。
  • 核对 firing 告警的标签与接收器配置,确认告警按预期进入正确的 receiver,没有被静默丢弃。

适合人员

  • 负责告警可靠性的 SRE,想在规则上线前确认它在真实故障指标下能正确触发,减少漏报和误报。
  • 维护多套 Prometheus 规则库的监控平台开发,需要批量校验 PromQL 表达式与路由配置的一致性。
  • 为自己服务编写监控规则的后端或基础架构工程师,想在合入主分支前用历史数据验证触发逻辑。
  • 参与故障复盘的工程师,需要用当时的指标数据验证告警规则是否本该提前触发。