1. SLO 与 Error Budget 基础概念

在站点可靠性工程(SRE)体系中,SLO、SLI 与 Error Budget 是定义服务健康度与驱动自动化决策的三大基石。三者构成一条从测量到容忍再到行动的闭环链路,是后续自愈阈值设定的理论前提。

1.1 核心定义

术语 英文全称 定义 典型示例
SLI Service Level Indicator 服务等级指标,是对服务行为某个维度的量化测量,通常表示为比率、计数或延迟分布。 请求成功率 99.95%;P99 延迟 ≤ 200ms
SLO Service Level Objective 服务等级目标,是 SLI 的目标阈值,代表用户可接受的服务质量下限。 月度请求成功率 ≥ 99.9%
Error Budget Error Budget 错误预算,是 SLO 允许的最大不可用额度,计算公式为:1 − SLO。 SLO 99.9% → Error Budget = 0.1% 的月度总请求
关键等式: Error Budget = 1 − SLO。SLO 越严格,Error Budget 越少,系统可承受的故障窗口越小。

1.2 三者关系:测量 → 目标 → 容忍

SLI、SLO 与 Error Budget 构成一个递进式控制链:

  1. SLI 是原始数据:从监控系统采集请求成功率、延迟、吞吐量等原始指标。
  2. SLO 是目标边界:将 SLI 与业务期望对齐,定义“好”与“坏”的分界线。
  3. Error Budget 是剩余容错空间:SLO 之外的容忍额度,用于指导发布节奏、故障响应与自愈触发。

当 Error Budget 消耗殆尽时,系统应自动进入保守模式:降低变更频率、收紧自愈阈值、甚至主动降级非核心功能。

SLI → SLO → Error Budget 递进关系 SLI 服务等级指标 SLO 服务等级目标 Error Budget 错误预算 定义目标 计算容忍 公式与示例 • Error Budget = 1 − SLO • 月度总请求量 = 10,000,000;SLO = 99.9% • Error Budget = 10,000,000 × (1 − 0.999) = 10,000 次失败请求

1.3 典型 SLI 维度与 SLO 映射

不同业务场景关注的 SLI 维度不同,SLO 的设定也应随之调整。下表列出常见维度及其典型 SLO 范围:

SLI 维度 测量方式 典型 SLO 范围 适用场景
可用性 成功请求 / 总请求 99.9% ~ 99.999% 核心 API、支付、登录
延迟(P50) 第 50 百分位响应时间 ≤ 100ms 用户交互、前端渲染
延迟(P99) 第 99 百分位响应时间 ≤ 500ms 后台服务、数据查询
吞吐量 每秒请求数(RPS) ≥ 峰值 × 0.9 流媒体、消息队列
错误率 5xx 响应 / 总响应 ≤ 0.1% 所有生产服务
实践建议: 不要为所有维度设定 SLO。选择 2~3 个与用户体验最相关的 SLI 作为核心 SLO,其余作为辅助观测指标。过多的 SLO 会稀释 Error Budget 的管理焦点。

1.4 Error Budget 的消耗与自愈关联

Error Budget 不仅是统计数字,更是自愈系统的触发燃料。当消耗速率超过预设阈值时,系统应自动调整行为:

  • 绿色区(消耗 < 60%):正常运营,允许变更与发布。
  • 黄色区(60% ~ 80%):限制高风险变更,启动预自愈检查。
  • 红色区(> 80%):冻结变更,触发自动回滚或扩容,收紧自愈阈值。
Error Budget 消耗分区与自愈动作 绿色区 消耗 < 60% 正常运营 · 允许变更 黄色区 60% ~ 80% 限制高风险变更 红色区 消耗 > 80% 冻结变更 · 触发自愈
注意: Error Budget 的消耗分区阈值(60%、80%)并非固定值,应根据服务重要性与历史故障模式动态调整。本课程后续章节将详细讲解如何通过消耗模型自动校准这些阈值。

1.5 小结

理解 SLI、SLO 与 Error Budget 的关系是构建自愈系统的第一步:

  • SLI 回答“我们测量什么”。
  • SLO 回答“我们承诺什么”。
  • Error Budget 回答“我们还能容忍多少故障”。