3. SLI 与 SLO 基础:定义、设定与常见类型

在可观测性与服务画像体系中,SLI(Service Level Indicator,服务等级指标)与SLO(Service Level Objective,服务等级目标)是衡量服务健康度的核心量化工具。SLI 回答“服务现在怎么样”,SLO 回答“服务应该怎么样”。本章将系统梳理两者的定义、设定方法及常见类型,为后续“变更检测触发 SLI 口径重算”奠定基础。

3.1 SLI 定义:可观测的量化信号

SLI 是对服务某个特定维度(如延迟、错误率、吞吐量)的直接测量值,通常以时间窗口内的比率、分位数或计数形式呈现。一个有效的 SLI 必须满足:可采集、可聚合、可对比。

SLI 核心公式(通用形式):
SLI = (符合预期行为的事件数) / (总事件数) × 100%
例如:过去 5 分钟内,请求延迟 ≤ 200ms 的请求数 / 总请求数 = 99.5%

SLI 的采集粒度直接影响后续 SLO 的准确性与告警灵敏度。常见的采集方式包括:

  • 客户端埋点:在应用代码中插入指标采集逻辑(如 Prometheus Client、OpenTelemetry SDK)。
  • 服务网格代理:通过 Sidecar(如 Istio/Envoy)自动捕获请求级指标。
  • 基础设施探针:负载均衡器、API 网关、数据库代理层输出的访问日志与指标。
SLI 采集与聚合流程 SLI 采集与聚合流程 客户端埋点 服务网格代理 基础设施探针 指标聚合层(Prometheus / Thanos) SLI 时间序列输出

3.2 SLO 设定:从指标到目标

SLO 是围绕 SLI 设定的目标阈值,通常以“时间窗口内的达标百分比”表示。例如:“过去 30 天内,99.9% 的请求延迟 ≤ 200ms”。SLO 的设定直接决定服务的可靠性预算与告警策略。

SLO 等级 允许不可用时间/月 典型适用场景
99.9%(三个九) 约 43 分钟 内部工具、开发环境
99.95%(三个九半) 约 21 分钟 标准线上服务
99.99%(四个九) 约 4.3 分钟 核心交易、支付链路
99.999%(五个九) 约 26 秒 电信、金融核心系统
设定 SLO 的黄金法则:不要追求“完美”的 100%。SLO 越严格,运维成本与告警噪声呈指数级增长。建议从 99.9% 起步,根据业务容忍度逐步收紧。

3.3 常见 SLI 类型与分类

根据 Google SRE 经典分类及行业实践,SLI 主要分为以下四大类。每类对应不同的采集口径与计算方式。

SLI 类别 典型指标 采集口径示例 常见聚合方式
延迟(Latency) P50 / P95 / P99 响应时间 服务端收到请求到返回响应的耗时 分位数、平均值、直方图
错误率(Error Rate) HTTP 5xx 占比 / 业务异常率 状态码非 2xx/3xx 的请求数 / 总请求数 比率、滑动窗口计数
吞吐量(Throughput) QPS / TPS / RPS 每秒成功处理的请求数 速率、峰值、均值
可用性(Availability) 服务正常运行时间占比 健康检查通过次数 / 总检查次数 时间窗口比率
SLI 分类与 SLO 映射关系 SLI 分类与 SLO 映射关系 延迟 SLI 错误率 SLI 吞吐量 SLI 可用性 SLI P99 ≤ 200ms (99.9%) 错误率 ≤ 0.1% (99.9%) QPS ≥ 1000 (99.95%) 可用性 ≥ 99.99% SLO 设定要点 • 每个 SLI 对应一个 SLO • SLO 需设定时间窗口 • 错误预算 = 1 - SLO • 多 SLO 需设定优先级 • 口径变更需重新计算 (本章核心主题)

3.4 SLI 口径:定义即计算规则

SLI 的口径(Measurement Definition)决定了“什么事件算分母、什么事件算分子”。口径变更(如调整延迟阈值、排除健康检查请求、修改错误码范围)会直接导致 SLI 数值跳变,进而影响 SLO 达标状态。这是本课程后续“变更检测触发重算”的核心触发条件。

口径变更典型场景:
• 将延迟 SLI 的阈值从 200ms 调整为 500ms → SLI 数值瞬间升高,SLO 可能“被动达标”。
• 将 4xx 错误从错误率分母中排除 → 错误率 SLI 下降,掩盖真实问题。
• 新增/删除某个上游依赖的调用链指标 → 吞吐量 SLI 口径变化。

3.5 实践建议:SLI/SLO 初始化清单

  1. 选择 3~5 个核心 SLI:覆盖延迟、错误率、吞吐量、可用性,避免指标过多导致运维负担。
  2. 明确口径定义:在可观测平台(如 Grafana、Datadog)中为每个 SLI 建立文档化的口径规则。
  3. 设定初始 SLO:参考行业基准(如 99.9%),结合业务容忍度调整。
  4. 建立错误预算:SLO 达标线之上的剩余空间即为错误预算,用于指导发布节奏与告警阈值。
  5. 记录口径版本:每次口径变更需记录变更时间、原因、影响范围,为后续重算提供审计依据。
关键结论:SLI 是服务的“体温计”,SLO 是“健康标准”。口径是体温计的“刻度定义”。刻度一旦改变,体温读数必须重新解释——这正是本课程要解决的自动化问题。