1. SLO 基础概念:什么是 SLO、SLI、SLA

在开始配置跨环境参数之前,必须建立对 SLO 体系的基础认知。SLO、SLI、SLA 是站点可靠性工程(SRE)中三个紧密关联但截然不同的概念,它们共同构成了服务质量的度量与承诺框架。

1.1 核心定义

术语 全称 核心定义 典型示例
SLI Service Level Indicator
服务等级指标
对服务质量的某个维度进行实际测量的量化指标 请求延迟 P99 = 200ms
SLO Service Level Objective
服务等级目标
对 SLI 设定的目标阈值或范围,是团队内部追求的质量目标 99.9% 的请求延迟 ≤ 200ms
SLA Service Level Agreement
服务等级协议
服务提供方与用户之间的正式合同,包含未达标的惩罚条款 月度可用性 ≥ 99.95%,否则赔偿 10% 月费
关键记忆点:SLI 是测量值,SLO 是目标值,SLA 是合同值。SLO 通常比 SLA 更严格,为 SLA 提供缓冲。

1.2 三者关系与区别

三者的关系可以用一个递进漏斗来理解:从原始测量到内部目标,再到对外承诺。

SLI → SLO → SLA 递进关系图 SLI 服务等级指标 实际测量值 SLO 服务等级目标 内部目标阈值 SLA 服务等级协议 对外合同承诺 设定目标 对外承诺 核心差异对比 • 严格程度:SLO 通常比 SLA 更严格(如 SLO 99.9% vs SLA 99.95%) • 责任对象:SLI 面向工程师,SLO 面向团队,SLA 面向客户 • 变更频率:SLI 随系统变化,SLO 按季度调整,SLA 合同期内固定 错误预算 = 100% − SLO 例如:SLO 为 99.9% 时,每月允许的不可用时间为 43.2 分钟

1.3 典型 SLI 分类

SLI 通常从以下四个维度进行定义,每个维度对应不同的测量方法:

  • 可用性(Availability):服务正常响应请求的时间比例。常用公式:成功请求数 / 总请求数 × 100%
  • 延迟(Latency):请求从发出到收到响应的时间。常用分位数:P50、P95、P99
  • 吞吐量(Throughput):单位时间内处理的请求数量。常用单位:RPS(Requests Per Second)
  • 错误率(Error Rate):返回错误响应的请求比例。常用公式:HTTP 5xx 数 / 总请求数 × 100%
实践建议:在定义 SLI 时,优先选择用户可感知的指标。例如,对于 Web 服务,首字节时间(TTFB)比服务器 CPU 使用率更适合作为 SLI。

1.4 SLO 与 SLA 的典型数值对比

服务类型 典型 SLO 典型 SLA 每月允许不可用时间(基于 SLO)
核心数据库 99.99% 99.95% 4.32 分钟
API 网关 99.95% 99.9% 21.6 分钟
Web 前端 99.9% 99.5% 43.2 分钟
内部工具 99.5% 99.0% 3.6 小时
常见误区:不要将 SLO 直接等同于 SLA。SLO 是团队内部追求的目标,通常比 SLA 更严格,为 SLA 提供 1-2 个 9 的缓冲空间。如果 SLO 与 SLA 相同,则任何 SLO 违规都会直接触发 SLA 赔偿。

1.5 本章小结