2. 基线核验概念:什么是基线、为什么需要基线核验、基线核验在混沌工程中的定位

2.1 什么是基线

在混沌工程中,基线(Baseline) 是指系统在正常、稳定、未注入任何故障状态下的一组可量化的运行指标与行为特征集合。它代表了系统在理想条件下的“健康快照”,是后续所有混沌实验的参照原点。

基线通常包含以下维度的数据:

维度 典型指标 采集方式
性能指标 P99/P95/P50 延迟、吞吐量(TPS/QPS)、错误率 APM 工具、Metrics 端点
资源指标 CPU 使用率、内存占用、磁盘 IO、网络带宽 系统监控(Prometheus、CloudWatch)
业务指标 订单成功率、支付完成率、用户登录成功率 业务埋点、日志聚合
依赖状态 上下游服务连通性、缓存命中率、数据库连接池水位 健康检查、链路追踪
日志与事件 错误日志频率、告警触发次数、异常堆栈出现率 日志平台、告警系统
实践要点:基线数据并非一次性采集即可永久使用。系统版本升级、配置变更、流量模型变化后,基线必须重新校准。建议每次混沌实验前 24 小时内采集一次最新基线。

2.2 为什么需要基线核验

基线核验(Baseline Verification)是对基线数据的有效性、完整性和可重复性进行确认的过程。其必要性体现在以下三个层面:

  1. 消除实验噪音:没有经过核验的基线可能包含异常波动(如发布中的抖动、定时任务干扰),若直接作为参照,会导致实验结论误判——将系统自身波动误认为故障影响。
  2. 建立可信参照:混沌工程的核心逻辑是“实验组 vs 对照组”。基线就是对照组。只有经过核验的基线,才能支撑“故障注入后的指标偏差是否显著”这一判断。
  3. 防止基线漂移:长时间运行的系统中,基线会因资源碎片、连接池老化、缓存预热状态变化而缓慢漂移。核验机制能及时发现这种漂移,避免实验基准失效。
核心公式:
实验结论可信度 = 基线核验通过率 × 实验执行准确率 × 观测数据完整率

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

在混沌工程的完整生命周期中,基线核验处于实验设计阶段与实验执行阶段之间的关键衔接位置。它不是可选的“锦上添花”,而是决定实验结论是否有效的前置必要条件。

以下架构图展示了基线核验在混沌工程流程中的定位:

基线核验在混沌工程流程中的定位 ① 实验设计 假设定义 · 指标选择 ② 基线采集 多维度指标快照 ③ 基线核验 有效性 · 完整性 · 可重复性 ← 本课程核心关注点 → 通过 ④ 故障注入 CPU/网络/依赖故障 ⑤ 观测与对比 实验组 vs 基线对照组 核验不通过 → 返回重采 ⚠ 关键定位: 基线核验是混沌实验的“质量门禁”——核验不通过,实验不应继续执行。它直接决定了实验结论的统计可信度。

从流程图中可以清晰看到:基线核验(红色虚线框)位于基线采集之后、故障注入之前。它承担着“质量门禁”的角色——只有核验通过的基线才能进入后续实验环节;核验不通过则触发重采流程,直至基线满足要求。

2.4 基线核验的判定标准

基线核验通常从以下三个维度进行判定,任何一项不满足即视为核验失败:

核验维度 判定条件 常见失败原因
有效性 所有预设指标均成功采集,无缺失值、NaN 或超时 监控 Agent 离线、指标路径变更、采集超时
完整性 采集时长 ≥ 预设窗口(通常 10~30 分钟),数据点密度达标 采集窗口过短、采样间隔被篡改、数据存储截断
可重复性 连续 3 次采集的指标波动在 ±5% 以内(或业务自定义阈值) 系统存在周期性抖动、定时任务干扰、流量不稳定
常见误区:不要将“基线采集”与“基线核验”混为一谈。采集只是获取原始数据,核验是对数据质量的验证。很多团队采集了基线就直接开始实验,跳过了核验步骤,导致实验结论被系统噪音污染。

2.5 基线核验的产出物

一次完整的基线核验应输出以下内容,作为实验报告的组成部分:

  • 基线核验报告:包含核验时间、核验人、核验维度、通过/失败状态、失败原因说明。
  • 基线快照:核验通过后的指标数据快照,标记版本号与时间戳,用于后续对比。
  • 核验日志:记录核验过程中的异常事件、重试次数、阈值判定细节,便于审计与回溯。

以下示意图展示了基线核验的输入、处理与输出关系:

基线核验输入输出关系 输入 原始基线数据 核验阈值配置 核验处理 有效性检查 完整性校验 可重复性验证 输出 核验报告 基线快照 核验日志 📌 核验通过条件: 1. 所有指标有效性检查通过(无缺失/无超时) 2. 采集窗口完整,数据点密度 ≥ 配置要求 3. 连续 3 次采集波动 ≤ ±5%(或业务自定义阈值)

基线核验的产出物将作为实验报告的附件材料存档,用于后续的审计、复盘与合规检查。在正式的生产环境混沌实验中,基线核验报告是必须归档的交付物之一。