错误预算(Error Budget)管理
错误预算让「可用性」从抽象的数字变成了可操作的管理工具。
很多团队设置了 SLO,但 SLO 只是「达标线」——超过了还好,没超过怎么办?错误预算给出了答案:当 SLO 未达标时,消耗的就是错误预算。错误预算是 SLO 的「另一半」,是真正用来做决策的工具。
什么是错误预算
错误预算 = 100% - SLO 目标
以 SLO 99.9%(三个 9)为例:
这意味着:每月有 43.83 分钟的「故障时间额度」可以消耗。消耗完了,SLO 就未达标。
错误预算的消耗模型
Burn Rate(燃烧速率)
Burn Rate 描述错误预算的消耗速度:
多窗口 Burn Rate 告警
单一窗口的 Burn Rate 容易受噪声干扰,通常使用双窗口告警:
error-budget-alerts.yaml
Burn Rate 的数学推导
为什么短期告警阈值是 14.4,长期是 6?
错误预算策略
策略一:发布冻结
当错误预算消耗到一定程度,冻结发布新功能,专注修复问题:
策略二:错误预算驱动的 On-Call
当错误预算消耗过快时,提高告警响应优先级:
策略三:错误预算与性能改进挂钩
错误预算不仅是管理工具,也是推动持续改进的动力:
错误预算管理的常见误区
误区一:把 SLO 当目标,把错误预算当摆设
很多团队设了 SLO 但从不看错误预算——SLO 只是一个数字,没有转化为实际行动。
正确做法:错误预算告警应该和 SLO 达标告警一样重要,纳入团队的日常管理流程。
误区二:错误预算只用于发布决策
错误预算的价值不仅限于发布决策,还应该用于:
- On-Call 响应优先级
- 技术债务偿还计划
- 架构改进投资决策
- 团队绩效考核
误区三:错误预算归零才行动
等到错误预算完全耗尽才采取行动,往往已经太晚了。应该在错误预算消耗到 50%~75% 时就开始谨慎。
正确做法:设置多级告警,提前预警,留出足够的响应时间。
误区四:所有服务用同一个错误预算策略
核心服务(支付、登录)和边缘服务(推荐、统计)的错误预算策略应该不同:
错误预算报告
每个周期(月度/季度)应该生成错误预算报告:
error-budget-report.yaml
本章总结
核心要点:
- 错误预算 = 100% - SLO,是 SLO 的另一半,是真正可操作的决策工具
- Burn Rate 描述消耗速度,短期高速燃烧和长期中速燃烧需要不同阈值的告警
- 错误预算驱动发布决策:剩余多正常发布,剩余少冻结发布
- 多级告警:不要等到预算耗尽才行动,50%~75% 就应该开始谨慎
- 分层管理:核心服务和边缘服务用不同的 SLO 和错误预算策略
MTBF 和 MTTR 是可用性体系中的两个关键运营指标,下一节我们将讲解如何通过这两个指标理解和改善系统可靠性。