已采纳
回答正文
回复
讨论正文
该问题的正文与回答。
背景
我们是一个 B 端 SaaS(React 18 + Vite,约 300 路由),发布走灰度:5% → 20% → 50% → 100%,每档观察 30 分钟。目前的自动回滚条件只有两条:
DOMContentLoaded 后 2s 内无可见内容)> 1%。这两条兜住了「跑崩」,但兜不住「跑对了但体验坏了」——典型如:路由守卫竞态导致订单中心进不去、表单提交链路多了一次无必要的二次确认、列表页首屏接口被改成了串行。这类问题在灰度组里错误率是平的,用户只是「少走了几步」,要到全量后工单才爆发。
热榜上 #1620 那篇讲得很透:灰度放量失败 80% 是「看的指标没暴露新代码的错」,该盯「灰度组 vs 对照组同口径差分」。#569 也提到了路由守卫竞态这种「进不去页面」的场景。但两篇都停留在「该看哪些差分指标」,没落到「这些指标怎么变成一条机器可执行的回滚规则」——而恰恰是这一步卡了我们团队半年。
现象(一次真实事故)
3 周前一次发版:订单列表页把「导出」按钮的点击链路从「直接调接口」改成了「先弹确认框再调接口」。功能没坏,灰度组 JS 错误率平、白屏率平、P99 平。全量后 2 小时收到 11 条工单「导出变慢了/多了一步」。事后算:灰度组「点击导出 → 导出成功」的转化率从 96.2% 掉到 71.4%,掉了 25pp,但因为分母小(灰度组该路径日均约 400 次转化),按 30 分钟窗口算,样本只有 ~60 次,卡方检验根本到不了 p<0.05——就算我把转化率做成了告警指标,按常规显著性阈值它也触发不了。
已尝试的排查与结果
release_tag 分灰度组 / 对照组。数据管道没问题,延迟 P99 < 2s。期望得到的答案形态
我不是要一篇「灰度发布最佳实践」综述,而是想请教几个具体到数字的问题:
引用依据: