2. SLI 基础回顾:SLI 定义、黄金信号与采集粒度选择

在深入探讨采集频率优化之前,必须重新校准对 SLI(Service Level Indicator,服务等级指标)的认知。SLI 是 SLO 误差预算计算的原始输入,其定义是否精确、采集粒度是否合理,直接决定了后续所有优化工作的有效性。

2.1 SLI 的精确化定义

SLI 并非简单的“可用性”或“响应时间”,而是对服务某一特定维度的可量化测量值。一个合格的 SLI 必须满足以下条件:

  • 可观测性:能够通过监控系统持续采集,而非人工估算。
  • 可对比性:测量结果在不同时间、不同版本间具有一致的统计口径。
  • 业务相关性:直接反映用户体验或系统健康度。
SLI 定义公式示例:
SLI = (Good Events / Total Events) × 100%
其中 “Good Events” 需明确定义阈值与窗口。

2.2 黄金信号(Golden Signals)与采集粒度

Google SRE 提出的四大黄金信号是 SLI 设计的核心框架。不同信号的采集粒度选择,直接影响数据量与误差预算计算的精度。

黄金信号 典型 SLI 示例 推荐采集粒度 粒度选择依据
延迟(Latency) P99 响应时间 ≤ 200ms 10s - 60s 聚合 过高频率(1s)产生大量噪声;过低(5min)丢失毛刺
流量(Traffic) 每秒请求数(RPS) 1s - 10s 原始计数 用于容量规划,需保留峰值细节
错误(Errors) HTTP 5xx 占比 ≤ 1% 1s 原始计数 错误是离散事件,低粒度可快速触发告警
饱和度(Saturation) CPU 使用率 ≤ 80% 30s - 60s 聚合 资源指标变化较慢,高频采集收益低
粒度选择原则: 延迟和饱和度适合“聚合窗口”采集;流量和错误适合“事件计数”采集。切勿对所有信号使用同一采集频率。

2.3 黄金信号采集粒度对比图

下图展示了四种黄金信号在典型微服务架构中的采集粒度差异,以及它们与 SLO 误差预算计算的关系。

黄金信号采集粒度对比 黄金信号采集粒度对比与 SLO 映射 延迟 (Latency) P99 ≤ 200ms 流量 (Traffic) RPS 峰值 错误 (Errors) 5xx 占比 ≤ 1% 饱和度 (Saturation) CPU ≤ 80% 采集粒度:10s-60s 聚合窗口 采集粒度:1s-10s 原始计数 采集粒度:1s 事件计数 采集粒度:30s-60s 聚合窗口 SLO 误差预算计算 SLI 聚合 → 窗口对比 → 预算消耗 误差预算台账(Budget Ledger)

2.4 采集粒度选择的常见陷阱

  • 陷阱一:统一粒度——对所有黄金信号使用相同的采集间隔(如 60s),导致错误信号丢失毛刺,延迟信号噪声过大。
  • 陷阱二:过度高频——对饱和度信号使用 1s 粒度,产生大量冗余数据,增加存储成本且无实际收益。
  • 陷阱三:忽略聚合窗口——延迟 SLI 使用原始毫秒值而非窗口聚合(如 P99),导致 SLO 计算不稳定。
实践建议: 在定义 SLI 时,同步确定采集粒度与聚合策略。建议为每个黄金信号建立独立的“采集频率-聚合窗口”配置表,并在 SLO 文档中明确记录。

2.5 黄金信号采集策略总结

信号 采集模式 典型频率 数据存储影响 对 SLO 精度影响
延迟 分布聚合(P50/P90/P99) 30s 中 高(直接影响用户体验)
流量 计数 + 速率 10s 低 中(用于容量预警)
错误 计数 + 占比 1s 高 极高(直接影响可用性)
饱和度 均值 / 最大值 60s 低 低(用于趋势分析)

理解 SLI 定义与黄金信号的采集粒度差异,是后续设计“误差预算台账数据传输”的基础。错误的粒度选择会导致台账数据失真,进而影响 SLO 的可靠性。