1. SLI 基础概念:定义、关系与可观测性角色

SLI(Service Level Indicator,服务等级指标)是可观测性体系中最底层的量化基石。它回答一个核心问题:“用户此刻感受到的服务到底好不好?”。在基础设施领域,SLI 将 CPU、内存、网络、存储等原始指标转化为可度量的服务质量信号。

1.1 SLI 定义

SLI 是对服务某个特定维度质量的直接测量值,通常表示为一段时间内的比率、百分比或延迟分位数。它不是原始监控数据(如“CPU 使用率 75%”),而是经过口径加工后的服务质量表达。

维度 原始指标示例 SLI 口径示例
可用性 HTTP 200 响应数 / 总请求数 99.5% 请求成功(非 5xx)
延迟 P99 响应时间 = 320ms 95% 请求在 200ms 内完成
吞吐量 QPS = 1500 每秒成功处理请求 ≥ 1000
饱和度 内存使用率 = 82% 内存使用率 ≤ 85%
关键认知:SLI 必须包含分母(总事件数)和分子(好事件数),且分母不能为零。例如“请求成功率 = 成功请求数 / 总请求数 × 100%”。

1.2 SLI 与 SLO / SLA 的关系

三者构成一个从测量 → 目标 → 承诺的层级结构。SLI 是底层数据,SLO 是内部目标,SLA 是外部契约。

记忆口诀:SLI 是“测什么”,SLO 是“要多少”,SLA 是“赔多少”。
概念 定义 示例 责任方
SLI 实际测量的服务质量数值 过去 30 天请求成功率 = 99.92% SRE / 可观测性团队
SLO SLI 的目标阈值,内部承诺 月度请求成功率 ≥ 99.9% SRE + 产品团队
SLA 对外公布的承诺,含惩罚条款 月度可用性 ≥ 99.95%,否则退款 10% 法务 + 业务团队

三者之间的典型关系:SLA 比 SLO 更宽松(留出安全缓冲),SLO 比 SLI 当前值略高(驱动改进)。例如:

  • SLI 实际值:99.92%
  • SLO 目标值:99.95%(需要提升)
  • SLA 承诺值:99.90%(低于 SLO,留 0.05% 缓冲)
SLI / SLO / SLA 层级关系图 SLI(服务等级指标) 实际测量值:99.92% 请求成功率 SLO(服务等级目标) 内部目标:≥ 99.95% SLA(服务等级协议) 对外承诺:≥ 99.90%(含赔偿) 驱动目标 对外承诺 安全缓冲 SLA 99.90% SLO 99.95% 缓冲 = 0.05% 避免 SLA 违约

1.3 SLI 在可观测性中的角色

在可观测性“三大支柱”(指标、日志、链路追踪)中,SLI 主要属于指标(Metrics)领域,但它同时串联起日志和链路数据,形成完整的服务质量视图。

  • 统一语言:SLI 让开发、运维、业务团队用同一把尺子讨论服务质量。
  • 告警触发源:SLI 违反 SLO 是最高优先级的告警,直接触发事故响应流程。
  • 容量规划依据:长期 SLI 趋势反映基础设施瓶颈,指导扩容和架构优化。
  • 故障定位入口:SLI 下降时,通过下钻到日志和链路追踪定位根因。
常见误区:不要将原始监控指标直接当作 SLI。例如“CPU 使用率 90%”不是 SLI,只有将其转化为“CPU 使用率 ≤ 85% 的时间占比 ≥ 99%”才构成 SLI。SLI 必须包含好事件定义和时间窗口。
SLI 在可观测性体系中的核心位置 指标(Metrics) 日志(Logs) 链路追踪(Traces) SLI(服务质量指标) 请求成功率 / P95 延迟 / 错误率 告警 & 事故响应 容量规划 & 优化 故障定位 & 下钻

1.4 基础设施 SLI 的典型分类

在基础设施层面,SLI 通常按资源类型分为四大类,每类都有标准的口径设计模式:

资源类型 典型 SLI 口径 好事件定义 常见窗口
计算 CPU 使用率 ≤ 80% 的时间占比 CPU ≤ 80% 5 分钟 / 1 小时
内存 内存使用率 ≤ 85% 的时间占比 内存 ≤ 85% 5 分钟 / 1 小时
网络 网络丢包率 ≤ 0.1% 的时间占比 丢包率 ≤ 0.1% 1 分钟 / 5 分钟
存储 磁盘 IO 延迟 P99 ≤ 10ms 的时间占比 P99 ≤ 10ms 5 分钟 / 1 小时