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 耗尽,意味着服务已超出可接受的不可用范围,需要立即介入。

SLI / SLO / Error Budget 核心关系图 SLI / SLO / Error Budget 核心关系 SLI 服务等级指标 (实际测量值) SLO 服务等级目标 (承诺阈值) Error Budget 错误预算 (容错空间) SLI 持续低于 SLO → Error Budget 被消耗 Error Budget 耗尽 → 服务已超出可接受的不可用范围,需立即介入 Error Budget = 1 − SLO 例:SLO = 99.9% → Error Budget = 0.1% 的月度总请求量

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 / 当前燃烧率 提供明确的响应时间窗口
燃烧率分析 vs 传统监控对比 燃烧率分析 vs 传统 Error Budget 监控 传统监控(滞后告警) T0 T1 T2 SLI 缓慢下降 ! 告警 问题已持续较长时间 用户已感知到影响 响应时间窗口极短 燃烧率分析(早期预警) T0 T1 T2 燃烧率快速上升 ! 早期预警 问题刚出现即被捕获 用户尚未感知到影响 充足的响应时间窗口 核心差异:燃烧率分析关注“消耗速度”,而非“剩余量”,从而实现从被动告警到主动预警的转变

1.4 燃烧率分析的典型应用场景

  • 多窗口燃烧率告警:同时监控 1 小时、6 小时、24 小时等多个时间窗口的燃烧率,不同窗口对应不同严重等级。
  • SLO 台账风险预警:在 SLO 台账中为每个 SLO 配置燃烧率阈值,当燃烧率超过阈值时自动触发风险预警。
  • 容量规划与成本优化:通过燃烧率趋势分析,判断是否需要扩容或调整服务架构。
  • 故障复盘与归因:燃烧率曲线可以帮助定位故障开始时间、影响范围和恢复时间。
常见误区: 不要将燃烧率分析与简单的“错误率监控”混为一谈。燃烧率分析必须结合 SLO 目标值进行计算,它反映的是“相对于承诺目标的劣化速度”,而非单纯的错误数量或比例。

1.5 本章小结