燃尽率是什么
燃尽率表示错误预算的消耗速度,等于当前错误率除以允许错误率。以 99.9% 的 SLO 为例,允许错误率是 0.1%,若实际错误率达到 1.44%,燃尽率就是 14.4,说明按这个速度持续下去,30 天的预算会在两天左右烧完。它把错误预算从月底结算的报表,变成了可以实时告警的信号。
基本信息
| 定义 | burn rate = 实际错误率 / (1 − SLO) |
|---|---|
| 典型组合 | 多窗口多燃尽率,如 14.4 倍 1 小时与 6 倍 6 小时 |
| 换算关系 | 14.4 倍持续 1 小时约消耗 30 天预算的 2%,6 倍持续 6 小时约消耗 5% |
| 适用前提 | 服务已有明确的 SLO 与稳定的 SLI 指标 |
典型使用场景
- 替换阈值告警:用预算消耗速度代替凭经验拍出的错误率阈值
- 快慢双窗口:短窗口发现突发故障,长窗口确认持续劣化
- 分级通知:高燃尽率进入电话值班,低燃尽率进入工单或群消息
- 发布保护:发布后燃尽率明显抬升时可自动暂停灰度放量
99.9% SLO 的快慢双窗口判断
99.9% SLO 的快慢双窗口判断
# 快烧:1 小时燃尽率超过 14.4
(1 - sum(rate(http_requests_total{code!~"5.."}[1h]))
/ sum(rate(http_requests_total[1h]))) / 0.001 > 14.4
# 慢烧:6 小时燃尽率超过 6
(1 - sum(rate(http_requests_total{code!~"5.."}[6h]))
/ sum(rate(http_requests_total[6h]))) / 0.001 > 6
# 两条规则都应设置 for 持续时长,避免瞬时尖刺直接叫醒值班长窗口确认确实在持续消耗,短窗口确认现在就消耗得急,两者同时成立再触发高等级告警,可以明显降低误报与漏报。
阈值乘数要按自己的 SLO 与窗口长度换算,照抄其他团队的数值会失真;窗口过短则会让偶发尖刺频繁触发。
窗口组合的使用方式
- 快速发现:短窗口高倍率用于捕捉突发故障,通常在十分钟内即可触发
- 持续劣化:长窗口低倍率用于发现缓慢泄漏与容量不足
- 控制噪音:按级别搭配不同窗口,避免偶发尖刺直接叫醒值班
- 与预算联动:燃尽率告警的处理结论要落到修复优先级上
多窗口的本质是用两个时间尺度交叉验证:只保留其中一个尺度,都会在灵敏度与稳定性之间顾此失彼。