1. SLI 基础概念

1.1 定义 SLI(Service Level Indicator)

SLI(Service Level Indicator,服务等级指标) 是对服务某个特定维度进行量化的可测量指标。它回答一个核心问题:“服务当前表现如何?”。SLI 必须是可采集、可计算、可对比的数值,通常以比率、延迟、吞吐量或错误计数等形式呈现。

SLI 的典型特征:
  • 可测量性:能从监控系统或日志中直接采集或计算得出。
  • 可对比性:在不同时间窗口、不同版本或不同集群之间能进行横向比较。
  • 业务相关性:指标必须反映用户真实体验或系统关键行为。
  • 可聚合性:支持按时间、标签、维度进行多层级聚合。

常见的 SLI 类型包括:

SLI 类型 定义 典型示例
可用性 服务正常响应请求的时间占比 HTTP 200/5xx 比率 ≥ 99.9%
延迟 请求从发出到收到响应的时间 P99 延迟 ≤ 200ms
吞吐量 单位时间内处理的请求数量 QPS ≥ 10,000
错误率 失败请求占总请求的比例 错误率 ≤ 0.1%
饱和度 资源使用接近上限的程度 CPU 使用率 ≤ 80%
SLI 定义与采集流程 业务请求 指标采集 SLI 计算 可用性维度 延迟维度 吞吐量维度 多维度聚合(时间/标签/集群) 输出:精确 SLI 阈值与告警

1.2 SLI 与 SLO / SLA 的关系

SLI、SLO、SLA 三者构成服务等级管理的核心链条,缺一不可。理解它们之间的层级关系是构建可靠可观测体系的基础。

概念 英文全称 核心定义 回答的问题
SLI Service Level Indicator 服务表现的可测量指标 “服务现在怎么样?”
SLO Service Level Objective SLI 的目标阈值或范围 “服务应该达到什么水平?”
SLA Service Level Agreement 与服务等级相关的正式合同承诺 “达不到目标会怎样?”
核心关系公式:
SLI(实际测量值)→ 对比 SLO(目标阈值)→ 决定 SLA(合规/违约)
没有精确的 SLI,SLO 就是空头支票;没有合理的 SLO,SLA 就是无源之水。
SLI → SLO → SLA 层级关系 SLI:服务等级指标(可测量数据) 延迟 P99 = 180ms | 可用性 = 99.95% | 错误率 = 0.02% SLO:服务等级目标(阈值设定) 延迟 P99 ≤ 200ms | 可用性 ≥ 99.9% | 错误率 ≤ 0.1% SLA:服务等级协议(合同承诺) 月度可用性 ≥ 99.95%,否则赔偿 10% 月费 数据 → 目标 → 承诺

1.3 SLI 在可观测性中的核心地位

可观测性(Observability)的三大支柱——指标(Metrics)、日志(Logs)、链路追踪(Traces)——最终都需要通过 SLI 来量化服务的健康状态。SLI 是连接原始数据与业务决策的桥梁。

SLI 在可观测性中的关键作用:
  1. 统一量化语言:将分散的监控数据转化为统一的“健康分数”,便于跨团队沟通。
  2. 告警触发基准:SLI 阈值直接决定告警是否触发,避免告警风暴或漏报。
  3. 容量规划依据:通过 SLI 趋势预测资源瓶颈,指导扩缩容决策。
  4. 故障定位锚点:SLI 异常变化可快速缩小排查范围,关联日志和链路数据。
  5. 持续改进驱动:SLI 的长期趋势反映系统演进质量,驱动架构优化。

以下表格对比了 SLI 与可观测性三大支柱的协作关系:

可观测性支柱 与 SLI 的协作方式 典型场景
指标(Metrics) SLI 直接来源于指标聚合,如请求计数、延迟分布 Prometheus 采集 QPS 和错误率,计算可用性 SLI
日志(Logs) 日志解析后生成 SLI,如错误日志比率 ELK 解析 5xx 日志,计算错误率 SLI
链路追踪(Traces) 追踪数据提供端到端延迟 SLI,识别慢调用 Jaeger 分析 P95/P99 延迟,生成延迟 SLI
常见误区: 很多团队将原始指标直接当作 SLI 使用,忽略了“业务相关性”和“维度聚合”两个关键步骤。例如,仅监控 CPU 使用率而不聚合到用户请求维度,无法真实反映服务质量。SLI 必须经过“业务语义映射”和“多维度聚合”才能成为有效的服务等级指标。
SLI 在可观测性三大支柱中的核心位置 SLI 服务等级指标 指标 Metrics 日志 Logs 链路追踪 Traces 告警触发 容量规划 故障定位