首页/云/可观测性速查/SLI、SLO 与 SLA:三个容易混用的概念
监控体系与方法40 条

SLI、SLO 与 SLA:三个容易混用的概念

SLI 是可测量的服务质量指标(如成功率),SLO 是团队内部设定的目标值(如 99.9%),SLA 是对外合同承诺;SLO 应严于 SLA 留出缓冲。

可观测性速查云更新于 2026-10-13

三个概念的分工

SLI 是可观测、可计算的指标,例如过去五分钟的请求成功率;SLO 是团队为这个指标设定的内部目标与统计窗口,例如滚动 28 天可用性不低于 99.9%;SLA 是对外合同里的承诺,通常附带赔付或折扣条款。三者的关系是自上而下收紧:SLA 必须宽于 SLO,SLO 又必须建立在真实可测的 SLI 之上。

基本信息

SLIService Level Indicator:可测量、可复现的服务质量指标
SLOService Level Objective:内部目标值与统计窗口
SLAService Level Agreement:对外承诺,含赔付或罚则
常见 SLI可用性、延迟、吞吐、正确性、数据新鲜度
统计窗口滚动 28 天或自然月,按结算与复盘节奏选择

典型使用场景

  • 定目标:把模糊的稳定性要求转成可度量、可结算的具体数值
  • 发布决策:以错误预算的消耗速率决定能否继续放量
  • 外包与采购:用 SLA 条款约束第三方依赖的可用性
  • 架构论证:不同冗余方案能支撑的 SLO 不同,用于评估投入成本
  • 故障复盘:用 SLI 还原故障期的真实影响范围与时长
  • 跨团队对齐:统一 SLI 定义后,上下游对可用的判断不再各执一词

三者对照

概念是什么举例违约后果
SLI可观测可计算的指标过去 5 分钟的请求成功率无,只作为度量
SLO内部目标与统计窗口滚动 28 天可用性不低于 99.9%触发错误预算策略
SLA对外承诺,常含赔付条款可用性不低于 99.5%,未达按比例赔付赔付、折扣或解约

常见 SLI 与取值方式

SLI 类型典型定义数据来源
可用性成功请求数除以总请求数服务端埋点或网关访问日志
延迟耗时落在阈值内的请求比例,如 300ms 内直方图指标或链路数据
吞吐单位时间成功处理的请求或数据量服务端计数指标
正确性业务语义成功的比例业务埋点,需与接口契约一致
数据新鲜度数据产出的延迟时间离线任务调度与数据平台

可用性 SLI 的 PromQL 写法

可用性 SLI 的 PromQL 写法
# 成功率:非 5xx 占比
sum(rate(http_requests_total{code!~"5.."}[5m]))
  / sum(rate(http_requests_total[5m]))

# 延迟 SLI:300ms 内完成的请求比例
sum(rate(http_request_duration_seconds_bucket{le="0.3"}[5m]))
  / sum(rate(http_request_duration_seconds_count[5m]))

# 任务型服务:成功完成任务数 / 应完成任务数
sum(rate(jobs_completed_total{result="success"}[1h]))
  / sum(rate(jobs_completed_total[1h]))
SLI 要贴近用户视角:用户在意请求是否成功、耗时是否可接受,而不是内部线程池大小或垃圾回收次数。
目标值必须和统计窗口一起定义:同样写 99.9%,按自然月还是滚动 28 天结算,结果可能相差数倍,写进文档才能避免月底扯皮。
不要用单一内部指标冒充可用性:只统计网关状态码会漏掉后端静默失败与依赖超时,建议同时补充端到端拨测或业务成功率。

SLO 数量要克制

一个服务建议只保留两三条 SLO:通常是可用性加一条延迟,必要时再补数据新鲜度或正确性。SLO 越多,指标维护与预算统计的成本越高,复盘时也越容易陷入口径争论。先把真正会被用于发布决策的那一两条定下来,比一次铺开十几条更容易落地。

SLO 可以随业务阶段调整:新服务初期允许宽松并留出学习期,运行稳定后再逐步收紧,不要把一次性拍出的目标当成永久约束。

定目标时的三个提醒

  • 目标越高边际成本越陡:从三个 9 提升到四个 9,往往需要成倍的冗余与自动化投入
  • SLI 要能稳定测量:采集不稳定的指标不适合做 SLI,先把埋点补齐再定目标
  • 目标要落到人:每条 SLO 指定负责人,否则预算耗尽时无人推动修复

易错点

  • SLO 定得比 SLA 松:对外承诺高于内部目标会带来超卖风险,赔付压力直接落到团队
  • SLI 定成内部指标:线程池、GC 次数这类数值用户感知不到,无法支撑体验类目标
  • 只用可用性覆盖全部体验:慢响应类问题不会被可用性 SLI 捕获,延迟 SLI 需要单独定义
  • 窗口与口径不写清:月初与月末对同一故障的结论不同,SLO 失去公信力

数据来源与参考

  • Google SRE Workbook · Implementing SLOs
  • Google SRE Book 第 4 章 Service Level Objectives
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌