SLO驱动变更失败率:服务目录的故障排查设计 - 第2节
2.1 服务等级目标(SLO)定义
服务等级目标(Service Level Objective, SLO)是 SRE 实践中最核心的量化承诺。它不是一个简单的“可用性百分比”,而是一个以用户旅程为基准、以错误预算为杠杆的可靠性管理锚点。
2.1.1 SLO 的构成要素
一个完整的 SLO 定义必须包含以下四个要素:
| 要素 | 说明 | 示例 |
|---|---|---|
| 指标(SLI) | 衡量服务质量的量化指标 | 请求延迟 P99 |
| 目标阈值 | 指标必须达到的具体数值 | ≤ 200ms |
| 时间窗口 | 评估周期(滚动窗口) | 过去 28 天 |
| 合规比例 | 窗口内满足阈值的时间占比 | 99.9% |
关键原则:SLO 必须基于用户视角定义,而非基础设施视角。例如“API 网关可用性 99.99%”不如“用户登录请求成功率 99.9%”更有意义。
2.1.2 SLO 的常见类型
- 可用性 SLO:服务正常响应请求的时间比例。通常以“成功请求数 / 总请求数”计算。
- 延迟 SLO:请求在指定时间内完成的比例。常用 P50、P95、P99 分位值。
- 吞吐量 SLO:单位时间内成功处理的请求量。
- 持久性 SLO:数据不丢失的概率,常用于存储系统。
- 新鲜度 SLO:数据从产生到可查询的最大延迟,常用于数据管道。
2.2 SLI 与 SLO 的关系
SLI(Service Level Indicator)是 SLO 的原材料。没有精确、可采集的 SLI,SLO 就是空中楼阁。二者关系可以概括为:SLI 是测量尺,SLO 是及格线。
2.2.1 SLI 的四大黄金信号
Google SRE 经典理论将 SLI 归纳为四个维度,称为“四大黄金信号”:
| 黄金信号 | 典型 SLI 定义 | 采集方式 |
|---|---|---|
| 延迟 | 请求响应时间 P99 ≤ 500ms | 服务端埋点 / 代理层 |
| 流量 | 每秒请求数(RPS) | 负载均衡器 / 网关 |
| 错误 | HTTP 5xx 占比 ≤ 1% | 应用日志 / 监控探针 |
| 饱和度 | CPU 使用率 ≤ 80% | 系统指标采集 |
2.2.2 从 SLI 到 SLO 的映射流程
- 定义用户旅程:识别用户最关心的关键操作(如“搜索商品”、“提交订单”)。
- 选择 SLI:为每个关键操作选择可测量的指标(如“搜索请求延迟 P95”)。
- 设定目标:基于历史数据和业务容忍度,确定 SLO 阈值(如“P95 ≤ 300ms”)。
- 确定窗口:选择滚动时间窗口(通常为 28 天或 30 天)。
- 计算合规率:统计窗口内满足 SLI 阈值的时间占比。
实践建议:不要试图为所有指标都设定 SLO。只对直接影响用户体验的 3~5 个核心 SLI 设定 SLO,其余指标作为辅助观测。
2.3 错误预算概念
错误预算(Error Budget)是 SLO 的衍生品,也是 SRE 团队与产品团队之间风险对话的货币。它回答了“我们允许系统出多少错?”这个关键问题。
2.3.1 错误预算的计算公式
错误预算 = 1 - SLO 目标值
例如:SLO = 99.9%,则错误预算 = 0.1%
时间窗口 = 28 天 = 40320 分钟
允许不可用时间 = 40320 × 0.1% = 40.32 分钟
这意味着,在 28 天的滚动窗口内,服务最多只能有 40.32 分钟处于不可用状态。一旦消耗完,团队必须停止所有非关键变更,全力投入可靠性修复。
2.3.2 错误预算的消耗与恢复
- 消耗:每次 SLI 未达标的事件都会消耗错误预算。消耗量 = 未达标时长 × 未达标程度。
- 恢复:错误预算随时间窗口滚动自然恢复。旧的未达标事件移出窗口后,预算自动增加。
- 燃尽率:单位时间内错误预算的消耗速度。燃尽率过高意味着系统稳定性正在恶化。
常见误区:错误预算不是“可浪费的额度”。它应该被视为风险预算——允许团队在可控范围内进行变更、发布新功能,同时为可靠性留出缓冲。
2.3.3 错误预算的决策机制
| 错误预算状态 | 团队行动 | 变更策略 |
|---|---|---|
| 充足(> 50%) | 正常发布新功能 | 标准变更流程 |
| 中等(20% ~ 50%) | 限制高风险变更 | 需审批 + 灰度发布 |
| 紧张(< 20%) | 停止非关键变更 | 仅允许紧急修复 |
| 耗尽(0%) | 全团队投入稳定性修复 | 冻结所有变更 |
2.4 SLO、SLI、错误预算关系图
下图展示了三者之间的核心关系与数据流向:
2.5 本章小结
- SLO 是服务可靠性的量化承诺,必须包含指标、阈值、窗口、合规比例四个要素。
- SLI 是 SLO 的测量基础,四大黄金信号(延迟、流量、错误、饱和度)是最常用的 SLI 维度。
- 错误预算 是 SLO 的衍生管理工具,用于平衡创新速度与系统稳定性。
- 三者形成闭环:SLI 采集 → SLO 定义 → 错误预算计算 → 变更决策 → 影响 SLI。