首页/云/可观测性速查/promtool test rules:告警规则单元测试
Prometheus 与采集64 条

promtool test rules:告警规则单元测试

用 YAML 描述测试:构造输入序列(input_series)、断言告警状态(alert_rule_test)与查询结果(promql_expr_test),在 CI 中防止规则回归。

可观测性速查云更新于 2026-10-12

测试文件示例

测试文件示例
rule_files:
  - alerts.yml
evaluation_interval: 1m
tests:
  - interval: 1m
    input_series:
      - series: 'http_requests_total{job="api",code="500"}'
        values: '0+10x30'   # 初始 0,每分钟加 10,共 30 次
    alert_rule_test:
      - eval_time: 20m
        alertname: ApiHighErrorRate
        exp_alerts: []       # 该时刻预期不触发

运行方式

运行方式
promtool test rules tests/api_alerts_test.yml
把 promtool test rules 加入 CI:规则改动先过测试再进生产环境。

易错点

  • values 语法 0+10x30 是初始值、每次增量与次数三段含义,写错会影响断言时刻的值
  • exp_alerts 断言会比较标签与注解,多字段不一致时测试失败信息较长,逐项核对

数据来源与参考

  • Prometheus 文档 · Unit testing for rules
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌