3. SLO 与 SLI 的关系:定义与度量支撑

SLO(Service Level Objective,服务等级目标)与 SLI(Service Level Indicator,服务等级指标)是可靠性工程与合规审计中的核心概念对。简单来说:SLI 是“测量什么”,SLO 是“目标值是多少”。没有 SLI,SLO 就是空谈;没有 SLO,SLI 就失去了业务导向。

3.1 核心定义与概念辨析

术语 定义 典型示例 审计关注点
SLI 对服务某个维度(延迟、错误率、吞吐量等)的量化测量指标 “过去 5 分钟 P99 延迟” 口径是否可复现、数据源是否可信
SLO 对 SLI 设定的目标阈值或范围,通常以时间窗口内的达标率表示 “月度 P99 延迟 ≤ 200ms 的比例 ≥ 99.9%” 目标是否合理、是否被持续监控
Error Budget 1 - SLO 所允许的不可用时间或错误次数 99.9% SLO 对应每月约 43 分钟错误预算 预算消耗是否触发合规告警
合规审计关键判断: 审计人员首先检查 SLI 的采集口径是否与 SLO 定义一致。例如,SLO 声明“API 可用性 99.95%”,但 SLI 只统计了 HTTP 200 状态码而忽略了 5xx 超时,则口径存在偏差,SLO 不可信。

3.2 SLI 如何支撑 SLO 的设定与度量

SLI 是 SLO 的“测量仪表盘”,二者通过以下四个环节形成闭环:

  1. 定义 SLI 指标 —— 选择可量化、可采集、与用户体验强相关的指标(如请求延迟、错误率、饱和度)。
  2. 设定 SLO 阈值 —— 基于历史数据、业务容忍度、合规要求,为每个 SLI 设定目标值。
  3. 持续度量与告警 —— 按固定时间窗口(如 28 天滚动窗口)计算 SLI 达标率,触发 SLO 燃烧率告警。
  4. 审计与验证 —— 定期比对 SLI 原始数据与 SLO 报告,确保口径一致、数据无篡改。
SLI → SLO 闭环支撑关系 ① 定义 SLI 延迟/错误率/饱和度 ② 设定 SLO 阈值 + 时间窗口 ③ 持续度量 达标率 + 燃烧率 ④ 审计验证 口径比对 + 数据溯源 审计检查点 SLI 口径文档 SLO 计算脚本

3.3 典型 SLI 口径与 SLO 映射示例

不同服务类型需要选择不同的 SLI 组合。以下表格展示了常见场景下的映射关系:

服务类型 SLI 指标 SLI 口径定义 对应 SLO 示例
HTTP API 网关 请求延迟 (P99) 从网关收到请求到返回响应的耗时,排除客户端网络延迟 月度 P99 ≤ 200ms 比例 ≥ 99.9%
数据库查询 查询错误率 返回非 0 错误码的查询数 / 总查询数 周度错误率 ≤ 0.1%
消息队列 消息投递延迟 从生产者发送到消费者确认接收的端到端耗时 日度 P95 ≤ 500ms 比例 ≥ 99.5%
对象存储 上传可用性 成功返回 200 的上传请求 / 总上传请求 季度可用性 ≥ 99.99%
审计最佳实践: 每个 SLO 必须关联至少一个可审计的 SLI 口径文档。口径文档应包含:指标名称、数据源(如 Prometheus/Grafana)、采集频率、聚合方式(如窗口大小、百分位计算)、异常值处理规则。

3.4 合规审计视角下的 SLI-SLO 一致性检查

在《Policy Check 合规审计》流程中,审计人员需要验证以下三个关键点:

  • 口径一致性: SLI 的测量范围是否与 SLO 声明的范围完全一致?例如,SLO 声明“全球所有区域”,但 SLI 只采集了美东区域,则存在覆盖缺口。
  • 时间窗口对齐: SLO 的评估窗口(如 28 天滚动)是否与 SLI 的聚合窗口一致?不一致会导致达标率计算偏差。
  • 数据完整性: SLI 数据是否存在缺失窗口?如果某小时数据完全丢失,审计应标记为“数据不可用”,而非自动视为达标。
合规审计:SLI-SLO 一致性检查清单 ① 口径一致性 SLI 范围 = SLO 范围? 排除项是否声明? ② 时间窗口对齐 滚动窗口 vs 日历窗口 聚合粒度是否匹配? ③ 数据完整性 缺失数据标记 数据源可追溯 三项检查全部通过 → SLO 报告可信;任意一项不通过 → 触发合规整改

3.5 常见误区与避坑指南

⚠️ 常见误区 1:SLI 越细越好
过度细化的 SLI(如每台机器的 P99 延迟)会导致 SLO 数量爆炸,难以管理。建议按服务维度聚合,每个服务不超过 3-5 个核心 SLI。
⚠️ 常见误区 2:SLO 设定为 100%
100% SLO 意味着零错误预算,任何故障都直接违反 SLO。实际工程中,99.9% ~ 99.99% 是合理范围,保留错误预算用于变更和发布。
⚠️ 常见误区 3:忽略 SLI 口径变更的审计追溯
如果 SLI 口径发生变更(如从 P99 改为 P95),必须记录变更时间、原因、影响范围。审计时若发现口径与历史数据不连续,应标记为“口径漂移”。

3.6 小结:SLI 与 SLO 的审计契约

在《Policy Check 合规审计与 SLI 口径验证流程》中,SLI 与 SLO 的关系可以总结为以下契约:

  • SLI 是证据,SLO 是承诺。 审计的核心是验证“承诺”是否被“证据”真实支撑。
  • 口径文档是桥梁。 没有口径文档的 SLI 不可审计,没有 SLI 支撑的 SLO 不可信。
  • 持续验证是底线。 即使 SLO 长期达标,审计仍需定期抽样验证 SLI 原始数据,防止口径漂移或数据造假。