2. SLO 基础概念:服务等级目标

服务等级目标(Service Level Objective, SLO)是可观测性与站点可靠性工程(SRE)的核心度量锚点。它不是一个简单的“阈值”,而是服务所有者与用户之间关于“服务应该好到什么程度”的明确契约。理解 SLO 的定义、它与 SLI/SLA 的关系以及常见类型,是构建服务画像与误差预算体系的第一步。

2.1 SLO 的定义

SLO 是一个具体的、可量化的目标值,它规定了在特定时间窗口内,某个服务等级指标(SLI)必须达到的期望水平。SLO 通常以百分比形式表示,并附带一个时间范围。

核心公式:
SLO = 目标值(如 99.9%) + 时间窗口(如 30 天)
示例:在过去 30 天内,服务可用性 SLI 必须 ≥ 99.9%。

SLO 的关键特征包括:

  • 用户视角驱动:SLO 应基于用户可感知的体验,而非内部基础设施指标。
  • 可测量与可追踪:必须能够通过 SLI 持续测量,并实时计算达标情况。
  • 误差预算的边界:SLO 定义了“好”与“坏”的边界,两者之间的差值即为误差预算。
  • 动态调整:随着服务画像变化,SLO 需要定期审视与更新。

2.2 SLO 与 SLI / SLA 的关系

这三者构成了服务等级管理的金字塔结构。理解它们之间的层级关系,是避免概念混淆的关键。

概念 定义 核心特征 示例
SLI
(服务等级指标)
衡量服务质量好坏的原始度量指标。 可观测、可采集、可计算。 请求延迟 P99、错误率、吞吐量 QPS。
SLO
(服务等级目标)
为 SLI 设定的具体目标阈值。 可量化、有时间窗口、是内部承诺。 P99 延迟 ≤ 200ms(过去 7 天)。
SLA
(服务等级协议)
与客户签订的法律/商业合同。 有惩罚条款、通常比 SLO 宽松。 月度可用性 ≥ 99.9%,否则赔偿。
实践要点:SLA 是商业承诺,SLO 是工程目标。通常 SLA 会设置得比 SLO 更宽松(例如 SLA 为 99.9%,内部 SLO 为 99.95%),以预留误差预算缓冲,避免触发赔偿。

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

SLI / SLO / SLA 层级关系图 SLI(服务等级指标) 原始度量:延迟 P99、错误率、吞吐量 QPS SLO(服务等级目标) 目标阈值:P99 延迟 ≤ 200ms(过去 7 天) SLA(服务等级协议) 商业合同:月度可用性 ≥ 99.9%,否则赔偿 说明:SLI 是原始数据,SLO 是工程目标,SLA 是商业承诺。SLO 通常比 SLA 更严格。

2.3 SLO 的常见类型

在服务画像中,最常见的 SLO 类型围绕三个核心维度:可用性、延迟和吞吐量。此外,正确率(错误率)也常作为关键指标。

2.3.1 可用性(Availability)SLO

衡量服务在给定时间窗口内正常响应请求的能力。通常以“多少个 9”表示。

  • 定义:成功请求数 / 总请求数 × 100%
  • 常见目标:99.9%(3个9)、99.99%(4个9)
  • 典型场景:核心数据库、用户认证服务、支付网关。

2.3.2 延迟(Latency)SLO

衡量服务响应请求的速度。通常使用百分位数(Percentile)来避免平均值掩盖长尾问题。

  • 定义:特定百分位(如 P50、P99)的请求完成时间。
  • 常见目标:P99 延迟 ≤ 200ms,P50 延迟 ≤ 50ms。
  • 典型场景:API 网关、前端页面渲染、实时推荐服务。

2.3.3 吞吐量(Throughput)SLO

衡量服务在单位时间内能处理的请求量或数据量。

  • 定义:每秒请求数(QPS)、每秒事务数(TPS)、每秒数据量(MB/s)。
  • 常见目标:峰值 QPS ≥ 10,000,日均处理量 ≥ 1 亿条。
  • 典型场景:消息队列、日志采集系统、CDN 边缘节点。
常见误区:不要只设置一个 SLO。一个完整的服务画像通常需要组合多个 SLO(如“可用性 99.9% 且 P99 延迟 ≤ 200ms”),才能全面反映服务质量。单一维度的 SLO 容易掩盖其他维度的劣化。

下表总结了三种常见 SLO 类型的对比:

类型 核心度量 典型目标值 用户感知影响 常见陷阱
可用性 成功请求占比 99.9% ~ 99.999% 服务完全不可用 忽略健康检查请求的干扰
延迟 百分位响应时间 P99 ≤ 200ms 页面加载慢、接口超时 只关注平均值,忽略长尾
吞吐量 单位时间请求量 峰值 QPS ≥ 10k 请求排队、限流触发 未区分正常流量与攻击流量

下图展示了三种 SLO 类型在服务调用链中的监控位置与相互关系:

SLO 常见类型在服务链路中的位置 用户请求 API 网关 核心服务 数据存储 可用性 SLO 延迟 SLO 吞吐量 SLO 说明:可用性 SLO 通常在网关层衡量,延迟 SLO 在核心服务层衡量,吞吐量 SLO 在数据层或入口层衡量。

2.4 小结

SLO 是连接用户期望与工程执行的桥梁。通过明确 SLI → SLO → SLA 的层级关系,并围绕可用性、延迟、吞吐量等核心维度设定目标,团队可以量化服务质量、建立误差预算机制,并为后续的服务画像动态更新奠定基础。