SLO服务等级指标与容量压测水位联合建模 - 第1节

1.1 服务等级指标(SLI)—— 衡量什么

服务等级指标(Service Level Indicator, SLI)是对服务质量某个维度的直接量化测量。没有 SLI,SLO 和 SLA 就失去了数据基础。

  • 定义:一个可采集、可计算的数值,反映服务在特定时间窗口内的行为。
  • 常见维度:可用性、延迟、吞吐量、错误率、持久性。
  • 采集方式:服务端埋点、客户端上报、拨测探针、日志聚合。
关键原则:SLI 必须可测量、可对比、可归因。避免“用户体验好”这类主观描述,应转化为“99% 的请求在 200ms 内完成”。

1.2 服务等级目标(SLO)—— 目标是多少

服务等级目标(Service Level Objective, SLO)是为 SLI 设定的目标阈值或范围,代表服务所有者承诺的内部质量水位。

  • 定义:SLI 的期望值,通常以“时间窗口内的达标百分比”表示。
  • 示例:“月度可用性 ≥ 99.9%”、“P99 延迟 ≤ 500ms”。
  • 用途:驱动容量规划、变更风控、错误预算管理。
实践建议:SLO 应比实际能力留出 10%~20% 的缓冲,避免因微小波动频繁触发告警。例如内部目标设为 99.95%,对外承诺 99.9%。

1.3 服务等级协议(SLA)—— 对外承诺什么

服务等级协议(Service Level Agreement, SLA)是服务提供方与用户/客户之间的正式合同条款,明确服务质量承诺及未达标时的补偿机制。

  • 定义:具有法律或商业约束力的协议,通常包含 SLO、测量方式、报告周期、补偿条款。
  • 与 SLO 的关系:SLA 中引用的 SLO 通常比内部 SLO 更宽松,以留出安全边际。
  • 常见补偿:服务 credits、退款、延长服务期。
风险提示:SLA 一旦签署,未达标将产生直接财务成本。务必确保内部 SLO 严格优于 SLA 承诺值,并建立独立的 SLA 监控与报告管道。

1.4 三者的核心区别

维度 SLI SLO SLA
本质 测量指标 目标阈值 合同条款
受众 工程师、监控系统 工程团队、管理层 客户、法务、商务
约束力 无 内部管理约束 法律/商业约束
示例 请求延迟 P99 = 120ms P99 延迟 ≤ 200ms(月度 99.9%) P99 延迟 ≤ 300ms,否则赔偿 5% 月费
调整频率 随系统变更 季度/版本迭代 合同周期(通常 ≥ 1 年)

1.5 三者的协作关系

下图展示了从原始测量到商业承诺的完整链路:

SLI / SLO / SLA 协作关系图 SLI 服务等级指标 原始测量数据 SLO 服务等级目标 内部质量承诺 SLA 服务等级协议 商业合同条款 数据流方向:SLI 测量 → SLO 设定目标 → SLA 对外承诺 内部 SLO 应比 SLA 严格,预留错误预算缓冲

1.6 典型错误预算模型

错误预算(Error Budget)是 SLO 的衍生概念:错误预算 = 1 − SLO。例如 SLO 为 99.9%,则每月错误预算为 0.1% × 30 天 × 24 小时 × 60 分钟 = 43.2 分钟。团队可在预算内安排变更、发布,超出则冻结上线。

容量压测关联:压测水位通常以 SLO 为基准线。当压测达到 SLO 边界(如 P99 延迟接近 200ms)时,即视为容量瓶颈点,需触发扩容或限流策略。

1.7 常见误区与避坑

  • 误区一:SLI 越多越好。 → 应聚焦 3~5 个核心维度,避免监控噪音。
  • 误区二:SLO 等于 SLA。 → 内部目标应比对外承诺更严格,留出安全边际。
  • 误区三:SLA 只写 SLO 不写补偿。 → 缺少补偿条款的 SLA 不具备约束力。
  • 误区四:忽略 SLI 的统计口径。 → 不同统计窗口(滚动窗口 vs 日历窗口)会导致结果差异,需提前定义。

1.8 本章小结

概念 一句话记忆
SLI 你测量了什么
SLO 你承诺达到什么水平
SLA 你合同上写了什么