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 的“测量仪表盘”,二者通过以下四个环节形成闭环:
- 定义 SLI 指标 —— 选择可量化、可采集、与用户体验强相关的指标(如请求延迟、错误率、饱和度)。
- 设定 SLO 阈值 —— 基于历史数据、业务容忍度、合规要求,为每个 SLI 设定目标值。
- 持续度量与告警 —— 按固定时间窗口(如 28 天滚动窗口)计算 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 数据是否存在缺失窗口?如果某小时数据完全丢失,审计应标记为“数据不可用”,而非自动视为达标。
3.5 常见误区与避坑指南
⚠️ 常见误区 1:SLI 越细越好
过度细化的 SLI(如每台机器的 P99 延迟)会导致 SLO 数量爆炸,难以管理。建议按服务维度聚合,每个服务不超过 3-5 个核心 SLI。
过度细化的 SLI(如每台机器的 P99 延迟)会导致 SLO 数量爆炸,难以管理。建议按服务维度聚合,每个服务不超过 3-5 个核心 SLI。
⚠️ 常见误区 2:SLO 设定为 100%
100% SLO 意味着零错误预算,任何故障都直接违反 SLO。实际工程中,99.9% ~ 99.99% 是合理范围,保留错误预算用于变更和发布。
100% SLO 意味着零错误预算,任何故障都直接违反 SLO。实际工程中,99.9% ~ 99.99% 是合理范围,保留错误预算用于变更和发布。
⚠️ 常见误区 3:忽略 SLI 口径变更的审计追溯
如果 SLI 口径发生变更(如从 P99 改为 P95),必须记录变更时间、原因、影响范围。审计时若发现口径与历史数据不连续,应标记为“口径漂移”。
如果 SLI 口径发生变更(如从 P99 改为 P95),必须记录变更时间、原因、影响范围。审计时若发现口径与历史数据不连续,应标记为“口径漂移”。
3.6 小结:SLI 与 SLO 的审计契约
在《Policy Check 合规审计与 SLI 口径验证流程》中,SLI 与 SLO 的关系可以总结为以下契约:
- SLI 是证据,SLO 是承诺。 审计的核心是验证“承诺”是否被“证据”真实支撑。
- 口径文档是桥梁。 没有口径文档的 SLI 不可审计,没有 SLI 支撑的 SLO 不可信。
- 持续验证是底线。 即使 SLO 长期达标,审计仍需定期抽样验证 SLI 原始数据,防止口径漂移或数据造假。