1. SLO 基础概念:SLO、SLI、SLA 的定义与区别

在构建自动化故障恢复流程之前,必须首先理解三个核心度量指标:SLI(服务等级指标)、SLO(服务等级目标)和 SLA(服务等级协议)。它们是 SRE 体系中最基础、最重要的概念,直接决定了告警阈值、恢复优先级和故障响应策略。

1.1 核心定义

术语 英文全称 定义 典型示例
SLI Service Level Indicator 服务质量的实际测量值,是客观可量化的指标 请求延迟 P99 = 120ms
SLO Service Level Objective 团队对 SLI 设定的目标阈值,是内部承诺 P99 延迟 ≤ 200ms(99.9% 周期内)
SLA Service Level Agreement 与客户签订的法律约束性协议,含惩罚条款 月度可用性 ≥ 99.99%,否则赔偿 10% 月费
关键认知:SLI 是“测量值”,SLO 是“目标值”,SLA 是“合同值”。SRE 日常工作中主要围绕 SLI 和 SLO 进行监控与告警,SLA 更多由法务和商务团队管理。

1.2 三者的区别与联系

下图直观展示了 SLI → SLO → SLA 的层级关系与数据流向:

SLI → SLO → SLA 层级关系图 SLI 服务等级指标 实际测量值 SLO 服务等级目标 内部承诺阈值 SLA 服务等级协议 法律约束合同 核心区别 • SLI 是“事实”:你实际观测到的延迟、错误率、吞吐量 • SLO 是“标准”:你承诺自己要做到的目标(如 P99 ≤ 200ms) • SLA 是“契约”:你向客户书面承诺并承担后果的条款 核心联系 • SLO 通常比 SLA 更严格(内部目标 > 对外承诺),预留安全缓冲 • SLA 违约触发赔偿,SLO 违约触发告警与故障恢复流程 • 所有 SLA 必须基于可测量的 SLI,SLO 是连接 SLI 与 SLA 的桥梁

1.3 典型 SLI 分类与 SLO 设定示例

在实际 SRE 运维中,常见的 SLI 分为以下四大类,每类对应不同的 SLO 目标:

SLI 类别 典型指标 常见 SLO 示例 测量窗口
可用性 请求成功率 / 正常运行时间 月度可用性 ≥ 99.99% 30 天滚动窗口
延迟 P50 / P95 / P99 响应时间 P99 延迟 ≤ 200ms(99.9% 请求) 5 分钟粒度,28 天窗口
吞吐量 QPS / RPS / TPS 峰值吞吐量 ≥ 10000 QPS 1 分钟粒度,实时
错误率 HTTP 5xx 占比 / 业务错误码 错误率 ≤ 0.1% 10 分钟滚动窗口
实践要点:在自动化 Runbook 中,告警阈值通常设置为 SLO 的 75%~90%。例如 SLO 为 99.99% 可用性,则告警触发点设在 99.992%~99.997%,预留足够时间在 SLO 违约前完成故障恢复。

1.4 SLO 告警与故障恢复流程的关联

理解 SLI/SLO/SLA 后,就能清晰定位自动化 Runbook 在整个体系中的位置:

  • SLI 持续采集 → 监控系统实时获取服务质量数据
  • SLO 阈值比对 → 当 SLI 接近或超过 SLO 边界时触发告警
  • 告警驱动 Runbook → 自动化故障恢复流程开始执行
  • 恢复后验证 → 再次检查 SLI 是否回到 SLO 安全区间
  • SLA 保护 → 快速恢复减少 SLA 违约风险

下图展示了从 SLI 采集到 Runbook 自动恢复的完整链路:

SLI → SLO 告警 → Runbook 自动化恢复流程 SLI 采集 延迟/错误率/吞吐量 SLO 比对 是否超出阈值? 告警触发 SLO 燃烧率告警 Runbook 自动执行 故障恢复流程 恢复后验证 SLI 是否回到 SLO 安全区间 自动化 Runbook 的触发条件 当 SLI 持续恶化并达到 SLO 燃烧率告警阈值时,Runbook 自动启动,无需人工介入。恢复完成后自动回检 SLI,形成闭环。

1.5 常见误区与避坑指南

常见误区 1:将 SLO 与 SLA 混为一谈。SLO 是内部工程目标,SLA 是外部法律承诺。SLO 违约不直接导致赔偿,但 SLA 违约会。自动化 Runbook 的首要目标是保护 SLO,间接保护 SLA。
常见误区 2:SLI 选择过多或过少。建议每个服务选择 3~5 个核心 SLI,过多增加监控成本,过少无法全面反映服务质量。优先选择与用户体验直接相关的指标。
常见误区 3:SLO 设定过于激进(如 99.9999%)。过高的 SLO 会导致告警频繁、Runbook 过度触发、运维成本激增。建议从 99.9% 开始,逐步优化。

1.6 本章小结

  • SLI 是客观测量值,SLO 是内部目标,SLA 是外部协议
  • SLO 通常比 SLA 严格 10%~50%,预留安全缓冲
  • 自动化 Runbook 的触发条件基于 SLO 燃烧率,而非 SLA 违约
  • 恢复流程完成后必须回检 SLI,确保 SLO 重新达标