Prometheus 规则(Rule)是什么?

Prometheus 规则(Rule)分录制规则与告警规则两种:录制规则预计算重查询生成新指标,告警规则按表达式触发告警送 Alertmanager。本文讲解规则文件写法、评估机制与两类规则的选用。

最佳实践
Prometheus 规则(Rule)是什么?封面

规则是写在 YAML 文件里、由 Prometheus 周期性评估的 PromQL 表达式——产出新指标的叫录制规则(Recording Rule),产生告警事件的叫告警规则(Alerting Rule)。

录制规则:预计算

groups:
  - name: precompute
    interval: 30s
    rules:
      - record: job:http_requests:rate5m
        expr: sum by (job) (rate(http_requests_total[5m]))

把重查询的结果存成新指标 job:http_requests:rate5m——仪表盘直接查它,秒开。面板慢查询的标准优化手段。

告警规则:触发告警

groups:
  - name: alerts
    rules:
      - alert: HighErrorRate
        expr: sum(rate(http_errors_total[5m])) / sum(rate(http_requests_total[5m])) > 0.05
        for: 10m
        labels: {severity: critical}
        annotations:
          summary: "错误率超 5%({{ $value | humanizePercentage }})"
  • for:持续 10 分钟才触发,避免瞬时抖动;
  • labels:路由与抑制用;
  • annotations:通知文案,支持模板插值。

评估机制

规则按 group 的 interval 周期评估;promtool check rules rules.yml 可在部署前做语法校验。

观测云对照

观测云的监控器就是告警规则的产品化:DQL 表达式、持续时长、告警等级、通知对象(钉钉/企微/飞书)全部界面化配置,还支持突变/区间/无数据等检测模式,无需维护规则文件与 Alertmanager。

常见问题(FAQ)

Q:规则放哪个目录? prometheus.yml 的 rule_files 指定,支持通配符多个文件。

Q:录制规则会补算历史吗? 不会,只从生效时刻开始产出新指标。

Q:告警规则评估失败怎么看? UI 的 Alerts 页与 prometheus_rule_evaluation_failures_total 指标。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台