好的告警描述一个需要人采取行动的风险,而不是“某个指标超过阈值”。规则必须说明影响、持续时间和第一步排查入口。
从比例而不是计数开始
sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
绝对错误数会随流量变化。比例规则还要设置最小流量条件,避免低流量时一个失败请求触发高错误率。
使用 for 抑制抖动
alert: HighErrorRate
expr: error_ratio > 0.02 and request_rate > 10
for: 10m
for 应匹配业务容忍时间,不能用来掩盖错误指标。容量耗尽类告警更适合预测趋势,而不是等利用率达到 100%。
补齐上下文
注解中加入影响范围、当前值、看板和 Runbook 链接。标签只保留路由需要的稳定维度,避免 Pod 名等短生命周期标签制造重复告警。
发布前测试
使用历史数据回放规则,检查正常波动、已知事故和无流量场景。规则上线后跟踪触发次数、确认率和实际行动,持续删除无效告警。