Prometheus 规则评估器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/prometheus-rule-evaluator。
技能介绍
它解决什么问题
写 Prometheus 告警规则时,你通常只能靠肉眼盯 expression 的返回值,很难判断「这条规则在三个月前那场流量高峰里到底会不会真的触发」。规则的 for 持续时间、labels、annotations 和阈值往往要到上线之后才暴露问题——要么永远不触发,要么在正常抖动里误报。
Prometheus 规则评估器把这件事变成一次可重复的离线验证:把历史指标当作输入,直接调用 Prometheus 的 /api/v1/query_range 接口重放规则,观察它在真实时间线上产出什么结果。
它如何工作
核心流程分三步:
- 取数:通过
/api/v1/query_range拉取指定时间窗内的原始序列,而不是只看当前瞬时值。 - 模拟:在可配置的时间窗口里对规则表达式做回放式求值,包含
for触发条件与阈值比较。 - 阈值测试:阈值支持参数化试探,方便验证「改到多少才不再误报」这类边界问题。
拿到结果后可以直接判断规则是否覆盖了预期场景,而不必等线上出事故才知道。
适用边界与注意点
- 它依赖一个正在运行且能访问
/api/v1/query_range的 Prometheus 实例。取不到数据,评估无从谈起。 - 回放结果只描述历史表现,不等于未来行为;样本精度和抓取间隔都会影响结论。
- 它是规则层面的校验工具,不替代对 exporter、recording rule 或 alertmanager 路由的审查。
- Prometheus 自身的安装与配置必须先确认无误,否则模拟结果没有参考意义。
截图预览
使用场景
- 新写了一条 CPU 告警规则,想在合并前用上周历史指标回放,确认触发时间和阈值是否合理。
- 线上出现误报,需要调整阈值,想拿过去三个月的 Prometheus 历史数据反复试算后再改规则。
- 规则加了 for 持续时间后总不触发,想用旧数据模拟不同窗口长度,定位是否等待期过长。
- 准备把一组告警规则从测试环境推到生产前,想对核心服务的近期指标做一轮离线验证。
适合人员
- 负责 Prometheus 告警配置的平台工程师,需要在合并规则前验证触发逻辑并减少误报。
- 处理告警风暴的 SRE,希望用历史数据回放定位阈值不合理或 for 条件配置过严的规则。
- 维护监控规则库的运维开发,想在版本发布前对一批新增或修改的规则做回归验证。