SLI指标采集实战:为SLO可靠性运营构建精准数据底座 - 第1节
1.1 从可靠性承诺到可度量指标
在站点可靠性工程(SRE)体系中,SLO(Service Level Objective,服务等级目标)与SLI(Service Level Indicator,服务等级指标)是构建数据驱动可靠性运营的两大基石。简单来说:SLI 是“测量什么”,SLO 是“目标值是多少”,Error Budget 则是“允许出错的余量”。三者形成闭环,让可靠性从模糊的“尽量不宕机”变为可量化、可追踪、可决策的工程实践。
核心关系速记:SLI 是原始测量数据 → SLO 是目标阈值 → Error Budget 是 SLI 与 SLO 之间的偏差容忍空间。
1.1.1 定义与职责
| 术语 | 英文全称 | 定义 | 典型示例 |
|---|---|---|---|
| SLI | Service Level Indicator | 对服务某个维度的量化测量指标,通常为比率或百分比 | 请求成功率 99.95%、P99 延迟 ≤ 200ms |
| SLO | Service Level Objective | SLI 必须达到的目标阈值,是团队对用户承诺的可靠性边界 | 月度请求成功率 ≥ 99.9% |
| Error Budget | Error Budget | 在 SLO 允许范围内可接受的失败总量(1 - SLO) | 若 SLO = 99.9%,则 Error Budget = 0.1% 的总请求量 |
1.1.2 三者的闭环关系
SLI 是原始观测数据,SLO 是目标红线,Error Budget 是运营决策的“货币”。当 Error Budget 充足时,团队可以更激进地发布新功能;当 Error Budget 消耗过快时,必须暂停发布、优先修复稳定性。这种机制将可靠性从“被动救火”转变为“主动预算管理”。
1.2 为什么需要精准采集?
SLI 是 SLO 和 Error Budget 的“原材料”。如果原材料(SLI 数据)存在偏差、遗漏或延迟,那么基于它计算出的 SLO 达成率、Error Budget 消耗速度都将失去可信度。精准采集不是“锦上添花”,而是 SRE 可靠性运营的必要前提。
1.2.1 不精准采集的典型后果
- SLO 虚高或虚低:漏采失败请求会导致 SLO 虚高,团队误以为系统很稳定,实际用户已感知异常。
- Error Budget 失真:采集窗口不完整或采样偏差,导致错误预算消耗速度计算错误,发布决策失误。
- 告警风暴或告警沉默:指标采集粒度太粗,无法及时反映真实故障;采集过于频繁且无降噪,则引发告警疲劳。
- 归因困难:缺乏多维标签(如地域、版本、机房),故障定位时无法快速缩小范围。
常见误区:很多团队认为“只要采集了 Prometheus 默认指标就算有 SLI”。实际上,默认指标往往缺少业务语义(如“登录成功率”),且采集频率、聚合方式、标签设计都可能与真实 SLO 需求脱节。
1.2.2 精准采集的三大维度
| 维度 | 说明 | 反例 | 正例 |
|---|---|---|---|
| 完整性 | 覆盖所有关键用户请求路径,不遗漏失败或超时 | 只采集 200 状态码,忽略 5xx 和超时 | 采集所有 HTTP 状态码 + 客户端超时 + 连接错误 |
| 准确性 | 测量值与真实值之间的误差在可接受范围内 | 使用 60s 聚合窗口掩盖瞬时故障 | 使用 10s 窗口 + 滑动窗口计算,保留原始分布 |
| 一致性 | 不同服务、不同版本的采集口径统一 | A 服务用成功率,B 服务用错误数 | 统一使用“成功请求 / 总请求”比率,标签规范一致 |
1.3 从理论到实战:SLI 采集的典型流程
精准采集不是一次性配置,而是一个持续迭代的过程。以下是标准 SLI 采集流程的四个关键步骤:
- 定义用户旅程:识别对用户最重要的请求路径(如登录、搜索、下单)。
- 选择 SLI 类型:根据业务特性选择可用性、延迟、吞吐量或正确性指标。
- 设计采集方案:确定数据源(代理、SDK、日志)、采集频率、聚合窗口、标签体系。
- 验证与校准:通过灰度对比、人工抽样、异常检测等方式验证采集数据的准确性。
1.4 本章小结
- SLI 是原始测量数据,SLO 是目标阈值,Error Budget 是运营决策的容忍余量,三者构成可靠性运营的闭环。
- 精准采集是 SLO 可信的前提,不精准的采集会导致 SLO 虚高、Error Budget 失真、告警失效等严重后果。
- 精准采集需要关注完整性、准确性、一致性三大维度,并通过“定义用户旅程 → 选择 SLI 类型 → 设计采集方案 → 验证与校准”四步流程持续迭代。
实战提示:在开始采集之前,先问自己三个问题:① 这个 SLI 对应哪个用户操作?② 采集频率能否捕捉到用户感知的异常?③ 如果数据偏差 5%,我的 SLO 决策会受影响吗?这三个问题能帮你快速判断采集方案的合理性。