promtool 是什么
promtool 是随 Prometheus 发行包一起提供的命令行工具,用来在部署前做静态校验与规则测试:check config 校验主配置,check rules 校验规则文件,test rules 用单元测试验证规则输出,check metrics 检查指标命名是否合乎惯例。把它放进 CI,可以在重启服务之前拦下配置错误,避免一次手滑把监控链路带崩。
基本信息
| 来源 | Prometheus 发行包自带,无需额外安装 |
|---|---|
| 常用子命令 | check config / check rules / test rules / check metrics |
| 退出码 | 校验失败返回非 0,可直接用于 CI 门禁 |
| 输入 | 主配置、规则文件或 /metrics 文本 |
| 代价 | 纯本地静态检查,不连服务 |
| 版本要求 | 工具版本应与服务端版本对齐 |
典型使用场景
- 提交 prometheus.yml 前先跑 check config,避免语法错误带崩服务
- 规则文件改动后跑 check rules,确认表达式与结构合法
- 用 test rules 写规则单元测试,验证阈值与标签输出符合预期
- 把 promtool check metrics 接到采集端,拦截缺单位后缀的指标
- 在 CI 流水线里作为部署前置门禁,不通过就阻断发布
- 服务端加载失败时用它复现错误信息,比翻服务日志更快定位
常用命令
常用命令
promtool check config prometheus.yml # 校验主配置与引用文件
promtool check rules rules/*.yml # 校验规则文件语法与结构
promtool test rules test_rules.yml # 跑规则单元测试
promtool check metrics < /metrics # 检查指标命名与单位习惯
curl -s localhost:9090/metrics | promtool check metrics # 直接校验线上输出常用子命令对照
| 子命令 | 作用 | 典型拦截问题 |
|---|---|---|
| check config | 校验主配置 | YAML 语法、字段拼写、引用文件缺失 |
| check rules | 校验规则文件 | 表达式非法、PromQL 语法错误 |
| test rules | 跑规则单测 | 阈值算错、标签输出不符预期 |
| check metrics | 检查 /metrics 文本 | 命名无单位后缀、类型标注错误 |
promtool check metrics 会提示命名与单位问题(如缺少单位后缀),适合接入采集端的质量门禁,成本低且不依赖服务运行。
静态校验只能覆盖语法与结构:表达式语义是否正确、阈值是否合理,要靠 test rules 的用例断言来兜住。
服务端改配置后可以通过配置重载接口生效,但重载前仍应先用 promtool 校验副本,避免把错误配置推进生产。