Demo:带上下文的 API 错误率告警
实用告警需要把表达式和响应上下文放在一起。annotation 应该告诉人发生了什么、从哪里开始查,而不是重复指标名。
- 尽量用比例,避免流量变化扭曲告警。
- 加 for 持续时间,避免短暂发布抖动触发。
- 统一 service、severity 和 runbook 标签。
groups:
- name: api.rules
rules:
- alert: ApiHighErrorRate
expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.05
for: 10m
labels:
severity: page
service: checkout
annotations:
summary: "Checkout API 5xx error ratio is above 5%"
runbook: "Check recent deploys, dependency errors, and upstream payment latency."生成结果应该先可读、可 review,然后再进入 promtool 验证。