1. SLI / SLO 基础概念

在开始误差预算与性能调优之前,必须统一对 SLI、SLO 和 SLA 的认知。这三个术语常被混用,但在 SRE 实践中各自承担截然不同的职责。本章从定义、区别到黄金信号,建立可观测性调优的度量基石。

1.1 SLI 定义

SLI(Service Level Indicator,服务等级指标) 是衡量服务质量某一维度的原始量化值。SLI 必须是可采集、可计算、可对比的数值,通常以比率或延迟分位数呈现。

  • 延迟 SLI:请求响应时间,如 P99 ≤ 200ms
  • 错误 SLI:请求失败率,如 HTTP 5xx 占比 ≤ 1%
  • 流量 SLI:请求吞吐量,如 QPS = 5000
  • 饱和度 SLI:资源使用程度,如 CPU 使用率 ≤ 80%
实践要点:SLI 必须定义明确的采集窗口(如 1 分钟粒度)和聚合方式(如平均值、分位数)。避免使用“感觉慢”这类主观描述。

1.2 SLO 定义

SLO(Service Level Objective,服务等级目标) 是为 SLI 设定的目标阈值,是团队承诺的服务质量边界。SLO 通常表述为“在某个时间窗口内,SLI 达到某标准的比例”。

维度 SLI 示例 SLO 示例
延迟 P99 延迟 过去 30 天,P99 延迟 ≤ 200ms 的比例 ≥ 99.9%
错误 HTTP 5xx 率 过去 7 天,错误率 ≤ 0.1% 的比例 ≥ 99.95%
饱和度 CPU 使用率 过去 24 小时,CPU ≤ 80% 的比例 ≥ 99%
常见误区:SLO 不是“理想值”,而是可容忍的边界。设置过紧的 SLO(如 99.999%)会导致频繁告警和无效运维;设置过松则失去质量保障意义。

1.3 SLA 区别

SLA(Service Level Agreement,服务等级协议) 是对外承诺的法律或商业条款,通常比 SLO 更宽松。SLO 是内部目标,SLA 是外部契约。

对比项 SLO SLA
受众 内部工程团队 客户 / 业务方
严格程度 更严格(预留误差预算) 更宽松(含赔偿条款)
调整频率 按需迭代 合同周期固定
违反后果 触发告警、复盘 赔偿、法律追责
核心原则:SLO 必须比 SLA 更严格。例如 SLA 承诺 99.9% 可用性,内部 SLO 应设为 99.95%,预留 0.05% 的误差预算作为缓冲。

1.4 黄金信号(Golden Signals)

Google SRE 团队定义了四个黄金信号,覆盖用户可感知的服务质量全维度。任何系统的可观测性建设都应从这四个信号开始。

  1. 延迟(Latency):请求处理耗时。关注高延迟是否由慢响应导致,而非仅看平均值。
  2. 流量(Traffic):系统负载水平。如 QPS、RPS、并发连接数。
  3. 错误(Errors):显式错误(5xx)+ 隐式错误(如返回 200 但业务逻辑失败)。
  4. 饱和度(Saturation):资源耗尽程度。CPU、内存、磁盘 I/O、连接池等。
黄金信号四象限模型 延迟 (Latency) P50 / P90 / P99 响应时间 慢请求 vs 高延迟 用户感知核心指标 流量 (Traffic) QPS / RPS / 并发连接 请求速率与负载变化 容量规划基础 错误 (Errors) HTTP 5xx / 4xx / 业务错误 显式错误 + 隐式错误 故障发现第一信号 饱和度 (Saturation) CPU / 内存 / 磁盘 / 连接池 资源耗尽前的预警 性能瓶颈定位 黄金信号 四维联动分析 缺一不可

1.5 SLI 到 SLO 的映射关系

每个 SLO 必须绑定至少一个 SLI。一个 SLI 可以服务于多个 SLO,但每个 SLO 只能有一个目标值。下图展示从原始指标到服务等级承诺的完整链路。

SLI → SLO → SLA 层级映射 原始指标 原始指标 原始指标 SLI:P99 延迟 ≤ 200ms 采集窗口:1 分钟 | 聚合方式:分位数 SLO:30 天内 99.9% 请求满足 SLI SLA:对外承诺 99.5% 误差预算
关键认知:误差预算 = 1 - SLO。例如 SLO 为 99.9%,则误差预算为 0.1%。这个预算决定了团队可以承受多少故障而不触发惩罚,也是后续性能调优中“是否值得优化”的决策依据。

1.6 本章小结

  • SLI 是度量什么——可量化的服务质量指标。
  • SLO 是目标值——内部承诺的服务质量边界。
  • SLA 是契约——对外承诺,附带赔偿条款。
  • 黄金信号 是度量维度——延迟、流量、错误、饱和度,缺一不可。
  • 误差预算连接 SLO 与调优决策,是后续案例实战的核心工具。