3. 值班环境基线定义
基线(Baseline)是系统在正常、稳定运行状态下各项关键指标的参考范围。在值班环境中,基线是判断异常、触发告警、启动故障排查的“零刻度线”。没有基线,告警阈值将失去依据,值班人员也无法快速区分“正常波动”与“真实故障”。
3.1 什么是基线
基线不是静态的固定值,而是基于历史数据统计得出的动态参考区间。它通常包含以下特征:
- 时间维度:按小时、天、周、月分别建立基线,以适配业务周期性变化(如白天高峰、夜间低谷、周末流量下降)。
- 统计维度:使用均值、中位数、P95/P99 百分位、标准差等统计量描述指标分布。
- 业务维度:不同服务、不同接口、不同用户群体可能有各自独立的基线。
实践建议: 基线应至少覆盖最近 14 天的正常运行数据,并排除已知故障时段。每周自动重新计算一次基线,确保其跟随系统演进。
3.2 关键指标:USE 与 RED 方法论
在 SRE 领域,通常使用 USE(Utilization、Saturation、Errors)和 RED(Rate、Errors、Duration)方法论来选取关键指标。结合两者,值班环境基线应重点关注以下四个维度:
| 指标类别 | 含义 | 典型度量 | 示例 |
|---|---|---|---|
| 延迟(Latency) | 请求从发出到收到响应的时间 | P50、P95、P99 延迟(毫秒) | API P99 延迟基线:200ms ± 50ms |
| 错误率(Error Rate) | 请求中返回错误状态码的比例 | HTTP 5xx 占比、应用异常率 | 错误率基线:< 0.1% |
| 饱和度(Saturation) | 资源被使用的程度,接近极限的程度 | CPU 使用率、内存使用率、磁盘 I/O 队列深度 | CPU 饱和度基线:< 70% |
| 流量(Traffic) | 系统承载的请求量或数据量 | QPS、RPS、带宽吞吐量 | 峰值 QPS 基线:5000 ± 800 |
关键原则: 延迟和错误率是面向用户的“体验指标”,饱和度和流量是面向系统的“容量指标”。值班人员应优先关注延迟和错误率的基线偏离。
3.3 基线阈值设定原则
阈值设定直接影响告警质量。阈值过紧导致告警风暴,过松则遗漏真实故障。以下是四条核心原则:
- 基于统计,而非经验:使用历史数据的 P95 或 P99 值作为基线上限,而非人工拍脑袋。例如:将 P99 延迟的 1.5 倍设为告警阈值。
- 区分告警级别:设置多级阈值,如 Warning(基线上限 × 1.2)和 Critical(基线上限 × 2.0),避免所有偏离都触发高优先级告警。
- 考虑季节性:为工作日/周末、促销日、月末结算等特殊时段建立独立基线,避免误报。
- 持续调优:每次故障复盘后,检查阈值是否合理;每季度进行一次基线重校准。
常见陷阱: 不要直接使用云厂商或监控工具的默认阈值。默认值通常过于通用,无法适配你的业务特征。务必基于自身数据建立基线。
3.4 基线核验流程(SVG)
下图展示了从指标采集到基线核验的完整流程,值班人员应定期执行此流程以确保基线有效性:
3.5 基线阈值设定示例
以下是一个实际电商系统的基线阈值设定示例,供值班人员参考:
| 指标 | 基线值(P95) | Warning 阈值 | Critical 阈值 | 说明 |
|---|---|---|---|---|
| 首页 API 延迟 | 200ms | 300ms | 500ms | 用户核心体验指标 |
| 订单接口错误率 | 0.05% | 0.1% | 0.5% | 直接影响交易 |
| 数据库 CPU 饱和度 | 60% | 75% | 90% | 容量规划依据 |
| 网关 QPS | 4500 | 6000 | 8000 | 流量突增预警 |
值班核验清单:
✅ 每日检查基线是否覆盖所有核心服务
✅ 确认基线计算周期(建议 14 天滑动窗口)
✅ 验证阈值是否与 PagerDuty 告警规则联动
✅ 每周回顾基线偏离事件,调整阈值
✅ 每日检查基线是否覆盖所有核心服务
✅ 确认基线计算周期(建议 14 天滑动窗口)
✅ 验证阈值是否与 PagerDuty 告警规则联动
✅ 每周回顾基线偏离事件,调整阈值