灰度与线上监控

自动关联目录:灰度与线上监控

1. 定位

发布不是终点,是开始:真正能验证质量的是线上数据,而不是测试环境。

一句话定位:灰度的目的是"把问题限制在小部分用户",监控的目的是"在用户投诉之前发现问题"。两者缺一不可。

2. 灰度

维度做法
按比例1% → 5% → 20% → 100%
按机型先在低端机验(最容易出问题)
按地区先小地区
按渠道先单一渠道
停止条件崩溃率/关键指标超阈值立即停止

关键:灰度必须配套可停止、可回滚的机制,否则只是"慢慢出事"。

3. 必看的线上指标

指标为什么
崩溃率最直接的"坏没坏"(见 崩溃与 Dump)
更新成功率热更分发是否有问题(见 热更新与补丁)
版本分布决定何时能下线旧补丁
启动成功率 / 首次进入耗时PSO 与加载问题(见 PSO 预缓存)
帧率分布别只看平均,看低端机
内存 OOM 率移动端硬指标(见 移动端内存与显存预算)

UE 特有的一条:更新后 24 小时崩溃率——它能直接反映这次包有没有把 PSO/资源搞坏。

4. 崩溃与符号

要点说明
保留符号发布时归档,否则栈读不懂(见 崩溃与 Dump)
崩溃聚合按栈聚类,排优先级
版本映射崩溃要能对应到具体版本
加壳/混淆要留符号映射

5. 回滚

层手段
资源/热更撤回补丁(见热更新篇的回滚设计)
商店版本商店回滚能力有限,要谨慎
服务端开关最灵活——用配置关掉出问题的功能
强制更新必要时要求用户升级

服务端开关是最可靠的回滚手段——尽量把"能不能开"做成服务端可控。

6. 代价与权衡

设计收益代价什么时候不该用
按比例灰度问题可控发布周期变长紧急修复可跳(但要盯得更紧)
服务端开关回滚最快需要提前设计事后加就来不及
全量监控看得见数据量与成本至少要监控崩溃率
只发不管快出事才知道从不做
灰度但无停止条件—等于没灰度必须有阈值

7. 踩坑与排查

坑现象怎么验证
没有灰度一发全量就炸建立灰度流程
灰度但不能停眼睁睁扩散加停止条件
没保留符号崩溃看不懂发布流程里归档
只看平均帧率低端机崩了还以为没问题看分布与低端机
没监控更新成功率分发坏了不知道加指标
回滚只能靠商店周期太长做服务端开关与热更回滚

8. 排查顺序

上线前:符号归档 ✓ 监控指标就绪 ✓ 灰度与回滚方案 ✓
上线中:看崩溃率 / 更新成功率 / 启动耗时,超阈值立即停止
上线后:24h 崩溃率是这次包的关键判据
出事时:优先用服务端开关或热更回滚,最后才是商店

参考