1. SLO 与 Error Budget 基础概念
在开始燃烧率分析之前,必须先理解三个核心概念:SLI、SLO 和 Error Budget。它们构成了现代可观测性与服务可靠性管理的基石。
1.1 核心定义与关系
| 术语 | 英文全称 | 定义 | 示例 |
|---|---|---|---|
| SLI | Service Level Indicator | 服务等级指标,是对服务质量的直接量化测量。通常是一个比率或数值。 | 请求延迟 P99 < 200ms;请求成功率 > 99.9% |
| SLO | Service Level Objective | 服务等级目标,是为 SLI 设定的目标阈值。它是团队承诺的服务质量边界。 | 月度请求延迟 P99 < 200ms 的达成率 ≥ 99.9% |
| Error Budget | Error Budget | 错误预算,是 SLO 允许的最大不可用额度。计算公式:Error Budget = 1 - SLO |
SLO = 99.9% → Error Budget = 0.1% 的月度总请求量 |
核心关系公式:
Error Budget = 1 - SLO剩余 Error Budget = Error Budget - 已消耗的不可用事件燃烧率 = 已消耗 Error Budget / 时间窗口
这三者的关系可以概括为:SLI 是测量值,SLO 是目标值,Error Budget 是容错空间。当 SLI 持续低于 SLO 时,Error Budget 被消耗;当 Error Budget 耗尽,意味着服务已超出可接受的不可用范围,需要立即介入。
1.2 为什么需要燃烧率分析?
传统的 Error Budget 监控存在一个严重缺陷:滞后性。通常团队只在 Error Budget 接近耗尽(如剩余 < 10%)时才收到告警,此时往往已经发生了较长时间的劣化,甚至已经对用户造成了明显影响。
燃烧率分析(Burn Rate Analysis)解决了这个问题。它通过计算 Error Budget 的消耗速度,在问题发生的早期阶段就发出预警,让团队有充足的时间进行响应和修复。
类比理解: 传统 Error Budget 监控就像油箱报警灯(油量低于 10% 才亮),而燃烧率分析则像瞬时油耗表——当油耗突然从 8L/100km 飙升到 15L/100km 时,你不需要等到油箱见底就能发现问题。
1.3 燃烧率的核心指标
| 指标 | 定义 | 计算公式 | 预警意义 |
|---|---|---|---|
| 燃烧率 | 单位时间内消耗的 Error Budget 比例 | 消耗的 Error Budget / 时间窗口 |
反映当前服务劣化的严重程度 |
| 消耗百分比 | 当前已消耗的 Error Budget 占总预算的比例 | 已消耗 Error Budget / 总 Error Budget × 100% |
反映剩余容错空间 |
| 预计耗尽时间 | 按当前燃烧率,Error Budget 将在多久后耗尽 | 剩余 Error Budget / 当前燃烧率 |
提供明确的响应时间窗口 |
1.4 燃烧率分析的典型应用场景
- 多窗口燃烧率告警:同时监控 1 小时、6 小时、24 小时等多个时间窗口的燃烧率,不同窗口对应不同严重等级。
- SLO 台账风险预警:在 SLO 台账中为每个 SLO 配置燃烧率阈值,当燃烧率超过阈值时自动触发风险预警。
- 容量规划与成本优化:通过燃烧率趋势分析,判断是否需要扩容或调整服务架构。
- 故障复盘与归因:燃烧率曲线可以帮助定位故障开始时间、影响范围和恢复时间。
常见误区: 不要将燃烧率分析与简单的“错误率监控”混为一谈。燃烧率分析必须结合 SLO 目标值进行计算,它反映的是“相对于承诺目标的劣化速度”,而非单纯的错误数量或比例。