2. 值班基线概念:什么是值班基线、基线指标分类(可用性、延迟、错误率)、基线阈值设定原则
2.1 什么是值班基线
值班基线(On-Call Baseline)是 SRE 团队在非故障时段,对核心服务所定义的一组可量化、可观测、可验证的稳态性能指标集合。它回答了“系统在正常运行时应该是什么样子”这一根本问题,是值班人员判断异常、触发告警、启动应急流程的客观参照系。
核心定义:值班基线 = 服务稳态的数字化快照。它不等同于 SLA/SLO,而是比 SLO 更细粒度、更实时、更贴近值班操作层面的“健康标尺”。
基线的作用贯穿值班全流程:
- 异常检测:实时指标与基线对比,快速识别偏离。
- 告警降噪:只有突破基线阈值的异常才触发告警,减少误报。
- 故障定界:基线提供故障前的“健康快照”,辅助根因分析。
- 回归验证:变更后通过基线核验确认服务恢复稳态。
2.2 基线指标分类
值班基线通常围绕三大黄金指标(Golden Signals)构建,辅以资源与业务指标。下表列出核心分类与典型指标:
| 分类 | 指标名称 | 典型度量方式 | 值班关注点 |
|---|---|---|---|
| 可用性 | 服务可用率 | 成功请求 / 总请求 × 100% | 低于 99.9% 需立即介入 |
| 健康检查通过率 | 通过探针数 / 总探针数 × 100% | 连续 3 次失败触发告警 | |
| 延迟 | P50 / P95 / P99 延迟 | 百分位延迟(毫秒) | P99 超过基线 2 倍视为异常 |
| 平均响应时间 | 总耗时 / 总请求数 | 与基线偏差 > 30% 需排查 | |
| 错误率 | HTTP 5xx 占比 | 5xx 数 / 总请求数 × 100% | 超过 1% 立即告警 |
| 业务错误码率 | 业务异常数 / 总请求数 × 100% | 根据业务容忍度设定 | |
| 资源 | CPU / 内存使用率 | 百分比 | 持续 > 80% 需扩容评估 |
| 磁盘 I/O 等待 | iowait 百分比 | 超过 30% 可能影响延迟 | |
| 业务 | QPS / TPS | 每秒请求数 / 事务数 | 突降或突增 50% 需关注 |
实践建议:初期优先覆盖可用性、延迟、错误率三大黄金指标,资源与业务指标作为辅助。每类指标选择 1-2 个最敏感的度量项即可,避免基线过于臃肿。
2.3 基线阈值设定原则
阈值设定是基线工程中最关键也最易出错的环节。错误的阈值会导致告警风暴或漏报。以下是 SRE 实践中总结的五大原则:
- 统计驱动原则:基于历史数据的百分位分布设定阈值,而非拍脑袋。例如取过去 7 天 P99 延迟的 1.5 倍作为告警阈值。
- 分层分级原则:按严重程度设置多级阈值(Warning / Critical / Emergency),避免单一阈值一刀切。
- 动态自适应原则:对于有明显周期性的指标(如日间高峰、夜间低谷),使用动态基线而非固定值。
- 业务对齐原则:阈值必须与业务容忍度挂钩。核心交易链路的延迟阈值应严于非关键查询链路。
- 可验证原则:每个阈值必须能通过历史故障数据回测验证,确保能检出已知故障而不产生过多误报。
常见陷阱:不要直接使用 SLA 数值作为值班基线阈值。SLA 通常是月度或季度聚合值,粒度太粗;值班基线需要分钟级甚至秒级的实时阈值,两者在时间窗口和灵敏度上完全不同。
2.4 基线阈值设定流程
下图展示了从原始指标到可执行基线阈值的标准化设定流程:
2.5 基线阈值示例
以下是一个典型 Web 服务的值班基线阈值配置示例,展示分层分级与业务对齐原则的具体落地:
| 指标 | Warning 阈值 | Critical 阈值 | 时间窗口 | 说明 |
|---|---|---|---|---|
| 服务可用率 | < 99.9% | < 99.5% | 5 分钟 | 核心交易链路 |
| P99 延迟 | > 500ms | > 1000ms | 1 分钟 | 基于 7 天 P99 的 1.5x / 3x |
| HTTP 5xx 率 | > 0.5% | > 2% | 1 分钟 | 连续 2 个窗口触发告警 |
| CPU 使用率 | > 75% | > 90% | 5 分钟 | 持续超过阈值 |
| QPS 突降 | 下降 > 30% | 下降 > 50% | 1 分钟 | 与前一小时同期对比 |