3. PSI 数据采集与预处理:数据源接入、清洗、归一化、时间窗口对齐

PSI(Page Speed Index)漂移告警的准确性,高度依赖底层数据的质量。原始 PSI 数据通常来自多个异构数据源(Lighthouse CI、CrUX API、RUM 探针),存在格式不一致、缺失值、时间戳抖动、量纲差异等问题。本章聚焦数据接入后的四个核心预处理环节,确保告警规则引擎的输入是干净、对齐、可计算的时序指标。

3.1 数据源接入与格式统一

不同数据源的 PSI 指标字段命名、单位、上报周期各不相同。接入层必须完成字段映射与类型转换,形成统一的内部指标模型。

数据源 原始字段示例 统一字段 单位转换
Lighthouse CI performance_score psi_score 0-100 整数
CrUX API largest_contentful_paint lcp_ms ms → ms
RUM 探针 first_input_delay fid_ms μs → ms
自定义 Agent cumulative_layout_shift cls_score 无单位
接入规范建议: 在数据管道入口处使用 Schema Registry 强制校验字段名、类型和范围,拒绝格式异常的数据行,避免脏数据进入下游窗口计算。

3.2 数据清洗:缺失值、异常点与重复数据

原始 PSI 数据流中常见三类污染:缺失值(网络抖动导致上报丢失)、异常点(浏览器插件或缓存策略导致指标突变)、重复数据(重试机制导致同一时间戳多条记录)。清洗策略如下:

  • 缺失值处理: 对于单点缺失,使用前向填充(forward fill)或线性插值;连续缺失超过 3 个窗口则标记为数据空洞,不参与漂移计算。
  • 异常点检测: 基于 3σ 或 IQR 规则剔除离群值。例如 LCP 超过 10 秒或 CLS 大于 1.0 的数据点直接丢弃。
  • 去重策略: 按 (metric_name, timestamp, source) 组合键去重,保留最新到达的一条记录。
清洗效果指标: 清洗后数据完整率应 ≥ 98%,异常点剔除率控制在 0.5%–2% 之间,避免过度清洗导致趋势失真。

3.3 数据归一化:消除量纲与分布差异

PSI 告警规则引擎通常需要将多个指标(LCP、FID、CLS、TBT)合并计算综合漂移分数。不同指标的量纲和数值范围差异巨大,必须进行归一化处理。

指标 原始范围 归一化方法 归一化后范围
LCP 0 – 8000 ms Min-Max 缩放 0 – 1
FID 0 – 500 ms Z-Score 均值 0,标准差 1
CLS 0 – 0.5 Min-Max 缩放 0 – 1
TBT 0 – 3000 ms Z-Score 均值 0,标准差 1
归一化陷阱: 使用 Min-Max 缩放时,若新数据超出历史最大/最小值,会导致归一化值溢出。建议采用 鲁棒缩放(RobustScaler),基于中位数和 IQR,对异常点更不敏感。

3.4 时间窗口对齐:固定窗口与滑动窗口

告警规则引擎要求所有 PSI 指标在相同的时间基准上进行比较。数据到达时间存在延迟(CrUX 数据通常滞后 24 小时),必须通过时间窗口对齐策略统一时间轴。

  • 固定窗口(Tumbling Window): 按 5 分钟、15 分钟或 1 小时切分,每个窗口内聚合均值或 P75 值。适用于实时 RUM 数据。
  • 滑动窗口(Sliding Window): 窗口长度 1 小时,滑动步长 5 分钟,保证每个数据点参与多个窗口计算,提升漂移检测的平滑度。
  • 滞后对齐: 对于 CrUX 等延迟数据源,设置最大等待时间(如 36 小时),超时未到的数据标记为缺失,不阻塞当前窗口计算。
PSI 数据预处理流水线 Lighthouse CI CrUX API RUM 探针 自定义 Agent 统一接入层(Schema 校验 + 字段映射) 数据清洗(缺失/异常/去重) 归一化(Min-Max / Z-Score / Robust) 时间窗口对齐(固定/滑动/滞后) 对齐后的时序指标 说明:预处理流水线输出统一时间戳、统一量纲的 PSI 指标序列,直接输入告警规则引擎进行漂移计算。 每个环节均需配置监控告警,确保数据质量可观测。

3.5 预处理质量监控与校验

预处理环节本身也需要可观测性。建议在管道中埋入以下监控指标:

  • 数据到达率: 每个窗口实际到达数据量 / 期望数据量,低于 90% 触发告警。
  • 清洗丢弃率: 被清洗的数据行数 / 总行数,超过 5% 说明上游数据源异常。
  • 归一化边界溢出率: 归一化后值超出 [0,1] 或 [-3,3] 的比例,超过 1% 需重新校准缩放器。
  • 窗口对齐延迟: 数据从采集到完成对齐的平均耗时,超过 2 分钟需排查管道瓶颈。
实战建议: 在预处理管道的每个阶段输出一份数据质量摘要(Data Quality Summary),包含时间范围、记录数、缺失率、异常率、归一化分布统计。该摘要随对齐后的指标一同写入时序数据库,便于后续回溯分析漂移告警是否由数据质量问题引发。