1. 课程导论:SLI 与 SLO 的基本概念、Collector 在可观测性中的角色、配置对数据采集的影响概述
1.1 从可靠性度量到可观测性数据管道
在 SRE 实践中,服务等级指标(SLI)与服务等级目标(SLO)是衡量系统可靠性的核心标尺。SLI 是对服务质量的直接量化,例如请求延迟、错误率、吞吐量;SLO 则是这些指标的目标阈值,例如“99.9% 的请求在 200ms 内完成”。然而,SLI 口径数据的质量完全取决于底层采集链路的准确性——这正是 Collector 扮演的关键角色。
核心认知:SLI 是“测量什么”,SLO 是“目标多少”,而 Collector 配置决定了“能否测准”。配置不当会导致 SLI 数据失真,进而使 SLO 告警失效或误报。
1.2 SLI 与 SLO 的核心概念对比
| 维度 | SLI(服务等级指标) | SLO(服务等级目标) |
|---|---|---|
| 定义 | 对服务质量的量化测量值 | SLI 应达到的目标阈值或范围 |
| 常见示例 | 请求延迟 P99、错误率、可用性 | P99 延迟 ≤ 200ms、错误率 < 0.1% |
| 数据来源 | Collector 采集的原始指标 | 基于 SLI 数据计算的目标边界 |
| 配置敏感性 | 高——采样率、聚合方式直接影响数值 | 中——目标值设定依赖 SLI 口径稳定性 |
| 典型问题 | 采集遗漏、标签丢失、时间戳偏差 | 目标过松/过紧、燃烧速率误判 |
1.3 Collector 在可观测性架构中的角色
Collector 是连接数据源与可观测性后端的中间层组件。它负责从应用、基础设施、网络设备等源头拉取或接收遥测数据,执行预处理、聚合、过滤、采样、标签增强等操作,最终将数据转发到存储或分析系统。在 SLI 口径数据采集场景中,Collector 承担以下核心职责:
- 数据接收:支持多种协议(OTLP、Prometheus Remote Write、StatsD、Jaeger 等)
- 数据处理:执行指标聚合、降采样、标签操作、数据质量校验
- 数据路由:根据配置将不同 SLI 数据分发到对应后端(如 Prometheus、Datadog、Grafana)
- 数据缓冲:在网络抖动或后端不可用时提供临时存储,防止 SLI 数据丢失
关键洞察:Collector 配置直接决定了 SLI 数据的完整性(是否丢失维度)、准确性(聚合窗口是否合理)和时效性(采集间隔与延迟)。一个错误的采样率配置可能导致 SLO 燃烧速率计算偏差超过 50%。
1.4 配置对数据采集的影响概述
Collector 配置并非“一次设置,永久有效”。不同的 SLI 口径对数据采集有截然不同的要求。以下是配置影响最显著的几个维度:
- 采样率配置:决定采集数据的密度。高采样率增加精度但消耗资源;低采样率可能遗漏关键事件,导致 SLI 计算偏差。
- 聚合窗口与降采样:影响 SLI 的时间粒度。窗口过大会掩盖短时故障,窗口过小则产生噪声。
- 标签(Label)保留策略:决定 SLI 的可分组维度。丢失关键标签(如 region、service_version)将无法进行细粒度 SLO 分析。
- 指标命名与归一化:影响 SLI 口径的跨系统一致性。命名冲突或单位错误会导致 SLO 计算完全失效。
- 缓冲与重试机制:影响数据完整性。配置不当可能导致网络抖动时 SLI 数据永久丢失。
常见陷阱:许多团队在配置 Collector 时只关注“能否采集到数据”,而忽略了“采集到的数据是否满足 SLI 口径要求”。例如,使用默认的 60 秒聚合窗口来计算 P99 延迟 SLI,当服务出现 10 秒级的突发延迟时,该窗口会完全掩盖问题,导致 SLO 告警延迟数分钟。
1.5 配置影响链:从原始数据到 SLO 判定
为了直观展示配置如何逐级影响 SLI 口径,以下表格梳理了从数据采集到 SLO 判定的完整链路:
| 链路阶段 | 关键配置项 | 对 SLI 口径的影响 | 典型风险 |
|---|---|---|---|
| 数据接收 | 接收协议、端口、认证 | 数据源能否成功接入 | 协议不匹配导致数据丢失 |
| 数据预处理 | 采样率、过滤规则 | 数据密度与代表性 | 低采样率遗漏异常事件 |
| 聚合与降采样 | 聚合窗口、聚合函数 | SLI 的时间粒度与统计精度 | 窗口过大掩盖短时故障 |
| 标签处理 | 标签保留/删除/重命名 | SLI 的可分组维度 | 丢失关键标签无法定位 |
| 数据路由 | 后端地址、队列大小 | 数据能否到达存储系统 | 路由错误导致数据黑洞 |
| 缓冲与重试 | 缓冲区大小、重试次数 | 数据完整性保障 | 缓冲溢出导致数据丢弃 |