基线核验概念

在混沌工程实践中,系统基线是衡量系统健康状态的基准参照系。没有基线,混沌实验就失去了判断“系统是否正常”的客观标准。本节将系统阐述基线的定义、必要性、在混沌工程中的定位以及分类体系。

什么是系统基线

系统基线(System Baseline)是指在正常生产负载下,系统各项关键指标所呈现的稳定统计分布。它不是单一数值,而是一个包含均值、P99、波动范围、趋势斜率的多维参考模型。

核心公式: 基线 = f(正常时段指标采样) → {均值, 标准差, 百分位阈值, 趋势斜率}

基线通常通过以下方式建立:

  • 历史数据回放: 取过去7~30天同一时间窗口的指标数据
  • 压力测试标定: 在预发环境模拟峰值流量,记录系统极限
  • 持续学习更新: 随系统迭代和流量变化自动调整基线窗口
系统基线概念模型 历史指标数据 压测标定数据 实时流量采样 基线计算引擎 统计聚合 异常检测 趋势拟合 阈值自适应 性能基线 (P99/TP99) 可用性基线 (SLA/SLO) 业务基线 (转化率/订单) 基线不是静态阈值,而是动态统计区间;混沌实验的“通过/失败”由基线偏差判定 基线 = 均值 ± k×标准差(k 根据业务容忍度调整,通常取 2~3)

为什么需要基线核验

基线核验是混沌实验的前置条件和结果判官。没有基线核验,混沌工程将退化为“随机破坏+人工观察”的原始模式,无法形成可复现、可量化的工程体系。

场景 无基线核验 有基线核验
实验前 不知道系统当前是否健康,可能对已故障系统注入故障 确认系统处于基线范围内,实验起点一致
实验中 凭经验判断“好像变慢了”,无法量化影响 实时对比基线偏差,精确量化故障影响半径
实验后 人工检查日志,结论主观 自动比对恢复后指标是否回归基线,判定实验通过/失败
长期趋势 每次实验独立,无法积累系统韧性数据 基线漂移可追踪,系统退化可预警
实践要点: 基线核验应在混沌实验的 Pre-Check 和 Post-Check 阶段自动执行。Pre-Check 失败则中止实验并告警;Post-Check 失败则标记实验为“未通过”并触发回滚流程。

基线核验在混沌工程中的定位

在混沌工程实验生命周期中,基线核验处于承上启下的关键位置。它连接了稳态定义与实验验证两个核心环节。

基线核验在混沌工程生命周期中的定位 1. 稳态定义 确定基线指标 2. 基线核验 Pre-Check 3. 注入故障 执行混沌实验 4. 基线核验 Post-Check 通过 → 继续实验 失败 → 中止并告警 回归基线 → 通过 未回归 → 回滚修复 基线核验在混沌实验中执行两次:注入前确认系统健康,注入后确认系统恢复

基线指标的分类

基线指标按关注维度分为三大类:性能基线、可用性基线和业务基线。三类基线共同构成系统健康度的完整视图。

1. 性能基线

关注系统在正常负载下的响应速度和吞吐能力,是混沌实验中最敏感的指标。

  • 延迟指标: P50、P90、P99、P999 响应时间(单位:ms)
  • 吞吐指标: QPS(每秒查询数)、RPS(每秒请求数)、TPS(每秒事务数)
  • 资源指标: CPU 使用率、内存使用率、磁盘 IOPS、网络带宽
  • 连接指标: 活跃连接数、连接池等待时间、线程池活跃线程数

2. 可用性基线

关注系统的服务连续性和错误容忍度,直接关联 SLA/SLO 承诺。

  • 成功率指标: 请求成功率(200/5xx 比例)、健康检查通过率
  • 错误指标: 错误率(5xx/4xx 占比)、超时率、熔断触发次数
  • 可用性指标: 服务可用时间百分比(SLA 99.9%/99.99%)、MTBF(平均无故障时间)
  • 容错指标: 降级触发阈值、限流触发次数、重试成功率

3. 业务基线

关注用户感知和业务价值,是混沌实验的最终评判标准。

  • 转化指标: 下单转化率、支付成功率、注册完成率
  • 流程指标: 核心业务流程完成时间、购物车加购成功率
  • 数据指标: 数据一致性校验通过率、消息队列积压量、数据库主从延迟
  • 体验指标: 首屏加载时间、页面白屏率、用户操作响应时间
基线类别 典型指标 混沌实验关注点 核验频率
性能基线 P99延迟、QPS、CPU使用率 故障注入后延迟是否超出P99阈值 每次实验前后
可用性基线 请求成功率、错误率、SLA达标率 故障期间是否触发熔断/降级,恢复后错误率是否回归 每次实验前后 + 持续监控
业务基线 转化率、订单量、核心流程完成率 故障是否影响用户核心操作,业务指标是否偏离统计区间 每次实验前后 + 每日趋势校验
重要提醒: 三类基线必须联合使用,不能只关注性能而忽略业务。例如:P99延迟正常但转化率下降,说明系统可能存在逻辑错误而非性能瓶颈。混沌实验的“通过”标准应同时满足三类基线的回归要求。

基线核验的工程落地要点

在实际 GameDay 编排中,基线核验需要工具化、自动化。以下是推荐的落地实践:

  1. 基线存储: 使用时序数据库(如 Prometheus、InfluxDB)存储历史基线,支持按时间窗口查询
  2. 核验脚本: 编写可复用的基线核验函数,输入为当前指标快照,输出为通过/失败及偏差详情
  3. 阈值策略: 采用动态阈值(如 3-sigma、移动平均)而非固定阈值,适应系统正常波动
  4. 告警联动: 基线核验失败时自动触发告警,并阻断后续混沌实验流程
  5. 基线漂移监控: 定期(如每周)对比基线变化趋势,发现系统退化或容量瓶颈
GameDay 实战建议: 在首次 GameDay 演练前,至少收集 7 天 的基线数据。对于新系统或大版本上线后的系统,建议先运行 1 周 的“基线采集模式”,不执行任何故障注入,仅建立基线模型。基线数据越充分,混沌实验的结论越可靠。