导语:
体验回归与第三方不稳是前端的常见隐患。要做到可控,需要 RUM 指标体系、发布门禁(含包体积预算)、第三方隔离/熔断。本文提供可执行的门禁与熔断方案,附上线前/后 SOP。
1. RUM 指标与分层
- 核心:INP、LCP、CLS、白屏率、JS 错误率、资源失败率。
- 标签:
app_version、route、region、device_type、is_canary。 - 采样:核心路由全量,长尾按比例;第三方请求单独采样。
2. 包体积与性能预算
- 主包/路由包预算,超阈值阻断;构建生成 bundle 报告并对比基线。
- 性能预算:用历史 P75/P90 作为初始 LCP/INP 阈值,逐步收紧。
- 资源策略:分包/懒加载/预加载策略固定模板,避免随意漂移。
3. 第三方隔离与熔断
- 加载:延迟/按路由加载,避免阻塞首屏。
- 隔离:iframe 沙箱、CSP、独立域名;减少全局污染。
- 熔断规则示例:第三方请求 P95>2s 或错误率>3% → 熔断10分钟,降级 UI,告警。
- 预案:熔断后切换替代方案或降级样式,保障主路径可用。
4. 上线前门禁(SOP)
- 构建:lint、类型、单测、包体积预算。
- 性能:关键路由自动化采集 LCP/INP,对比基线。
- 错误:冒烟检查 console 与核心交互。
- 第三方:检查新接入/变更是否有隔离与熔断开关。
5. 灰度与停止条件
- 流量分级:1%→10%→50%→全量。
- 观察:INP、错误率、白屏率、第三方错误/耗时。
- 停止条件:任一超阈值自动暂停/回滚,并切换到稳定配置(feature flag)。
6. 复盘与证据
- 发布后 24h:对比 RUM 与错误 Top 路由,记录问题与动作。
- 证据包:变更、指标、停止条件触发、回滚/调优动作。
- 持续改进:根据 Top 异常调整预算与熔断规则。
7. 额外护栏
- 长尾设备/网络:提供轻量版本策略,减少长尾拖累总体指标。
- 第三方替换:为关键第三方准备替代方案或降级占位。
结语:
把 RUM、包体积预算、第三方隔离/熔断做成默认门禁,前端发布才能在高频迭代中保持体验与稳定性。
补充:演练与排查
- 发布前演练一次“录制-回放”脚本,确认监控标签与告警能触发。
- 异常排查路径:RUM 看板定位路由/设备/版本→看错误与第三方请求分布→做新旧版本对比快照,记入证据包。
- 长尾兜底:为低端设备/弱网提供轻量模式,避免少量长尾拖累整体指标。
补充:模板与看板
- Bundle 报告模板:主包/路由包体积、依赖差分、第三方占比。
- 门禁看板:构建/性能/错误/第三方四块,突出“超预算/熔断触发”记录。
- 质量报表:发布后 24h 对比前后 LCP/INP/错误率,附动作与结论。
补充:灰度与止损
- 灰度节奏:1%→10%→50%→全量,每个阶段至少覆盖峰值时段。
- 止损:INP/错误率/白屏率/第三方错误超阈值自动暂停或回滚,并切换到稳定配置(feature flag)。