概述
本文档为系统初始化成功率下降场景提供标准化排查实践,排查过程需结合实际场景,灵活使用市场、时间、站点、URL等筛选项做针对性分析。
可在 "监控系统 " 的 "初始化成功率看板" 查看初始化成功率核心指标,含各阶段成功率、失败率统计数据等。
相关监控系统
- 初始化成功率看板:用于查看整体初始化成功率指标
- 应用性能监控系统:用于查看页面加载性能、JS 加载情况、API 调用情况
- 业务健康度看板:用于查看网络健康度、网关耗时等
- 异常信息看板:用于查看 JS 报错、API 错误等异常信息
排查步骤
整体排查流程:1. 了解整体情况 → 2. 排查 HTML 耗时上涨 → 3. 排查主链路 JS 耗时 → 4. 排查主链路 API 问题 → 5. 排查网络问题 → 6. 观察其他异常信息
1. 了解整体情况
通过 "应用性能监控系统 " 的 "初始化成功率看板",先定位初始化失败的核心集中阶段,再针对性排查
1.1 HTML 初始化阶段(html_init_start)
异常特征:该阶段统计数量上涨,代表初始化卡在 HTML 加载完成、JS 加载之前(JS 加载环节异常)
核心排查方向:静态资源加载问题
- 核查 CDN 服务运行状态
- 在 "应用性能监控系统" 查看 JS 加载情况(重点关注 404 错误)
1.2 JS 初始化阶段(js_init_start)
异常特征:该阶段统计数量上涨,代表初始化卡在 JS 加载完成、JS 执行完成之前(JS 执行环节异常)
核心排查方向:接口异常 | 静态资源加载问题 | JS 执行报错
- 查看接口耗时、成功率及具体报错信息
- 在 "应用性能监控系统" 查看 JS 加载情况(重点关注 404 错误)
- 在 "应用性能监控系统" 查看 JS Issue 情况(重点关注新增、暴增的报错类型)
1.3 JS 初始化完成(js_init_end)
该阶段统计数量上涨,代表初始化已完成JS 执行,即初始化成功,无异常
2. 排查 HTML 耗时上涨
2.1 观察 HTML 加载耗时
在 "应用性能监控系统 " 查看,建议按分钟 粒度查看趋势,重点关注核心指标的波动:DOM Ready 时间、First Paint 时间、HTML 加载总耗时
2.2 查看网关耗时
在 "应用性能监控系统 " 筛选对应域名、路径,观察延迟(latency) 指标,排查要点:
- 网关响应时间是否在正常阈值内
- 是否存在网关层面的性能瓶颈
- 网关错误率是否异常
2.3 查看网络耗时
在 "业务健康度看板" 筛选对应地区、站点,观察网络耗时波动,排查要点:
- 网络延迟是否正常
- 是否存在网络层面的链路故障
- 不同地区的网络表现是否存在明显差异
3. 排查主链路 JS 耗时
3.1 观察整体 JS 加载耗时
在 "应用性能监控系统 " 按分钟 粒度查看趋势,重点关注:JS 文件加载总耗时、JS 文件加载失败率、关键 JS 文件的加载时间
3.2 观察主链路关键 JS 的加载耗时
将主链路关键 JS 按 CDN 域名 、业务域名拆分观察,对比不同域名下的加载性能,排查要点:
- CDN 域名下 JS 的加载耗时、失败率
- 业务域名下 JS 的加载耗时、失败率
- 核心关键 JS 文件的加载时间与正常基准的差异
3.3 排查主链路关键 JS 的报错
在 "异常信息看板" 查看主链路 JS 的全量报错,涵盖 JS 加载失败、JS 执行报错、Console 错误信息,排查要点:
- 是否存在明显的错误聚集(如特定文件、特定报错类型)
- 分析报错的时间分布,是否与成功率下降时间点匹配
- 定位具体的报错文件及报错行
示例场景
若发现 utility-vendor.xxx.chunk.js 等关键 JS 文件加载失败呈聚集性,实际验证可能为该文件加载失败导致页面白屏,进而引发初始化成功率下降。
4. 排查主链路 API 问题
注意:初始化阶段的 API 列表需人工维护,该类看板数据可能存在滞后,需结合实际业务确认
4.1 初始化阶段的 API 网络成功率(是否发出请求)
在 "应用性能监控系统" 查看,核心关注 API 是否成功发出请求,排查要点:
- 初始化阶段 API 的网络成功率波动
- API 请求失败的网络层错误码统计
- 网络层面的故障原因分析
4.2 初始化阶段的 API 逻辑成功率(请求是否成功返回)
在 "应用性能监控系统" 查看,核心关注请求是否成功返回并执行业务逻辑,排查要点:
- 初始化阶段 API 的逻辑成功率波动
- API 返回的业务错误码统计及原因分析
- 业务逻辑层面的处理异常(如参数错误、数据为空等)
4.3 其他 API 的成功率
排查非初始化阶段 API 的运行状态,辅助定位问题,排查要点:
- 所有 API 的整体成功率是否存在普适性下降
- 特定非初始化 API 的成功率是否异常,是否会间接影响初始化
- 异常 API 的响应时间是否大幅上涨,是否存在服务阻塞
5. 排查网络问题
在 "业务健康度看板" 筛选对应地区、站点,观察网络耗时及链路状态,核心排查要点:
- 网络延迟是否超出正常阈值
- 是否存在地区 / 站点级别的网络链路故障
- 不同站点、不同运营商的网络表现是否存在差异化异常
判断标准:若网络耗时较正常基准出现明显上涨,且与初始化成功率下降时间点高度匹配,则大概率为网络原因导致初始化失败
6. 观察其他异常信息
在 "应用性能监控系统" 查看初始化失败的基础环境信息,作为辅助分析依据(无法直接定位根因,可缩小排查范围),涵盖:IP 地址、站点信息、User Agent、设备信息等
6.1 历史案例分析
结合过往排查实践,快速匹配相似场景,提升排查效率:
案例 1:操作系统异常导致成功率下降
现象 :失败案例的操作系统均为 Linux
分析 :判定为用户在 Linux 系统下通过脚本刷页面,一次性发起大量请求,导致系统处理过载,初始化成功率下降
解决方案:限制单 IP / 单设备的请求频率,或通过规则识别并拦截异常请求
案例 2:站点网络问题导致成功率下降
现象 :失败案例均集中于某一个 / 某几个特定站点
分析 :判定为对应站点出现网络链路故障,导致该站点的请求无法正常完成初始化
解决方案:立即核查该站点的网络连接、机房链路、网关配置等情况
排查流程总结
快速定位流程
- 查看 "初始化成功率看板"
- 确定失败核心阶段(HTML 加载 / JS 加载 / JS 执行)
- 根据阶段选择针对性排查方向
├─ HTML阶段 → 排查 HTML 耗时、网关耗时、网络耗时
├─ JS加载阶段 → 排查JS 加载耗时、CDN 问题、静态资源问题
├─ JS执行阶段 → 排查 API 成功率 / 耗时、JS 执行报错
└─ 无明确阶段 → 查看异常信息、环境信息缩小范围 - 结合多维度筛选项(地区 / 站点 / 时间)综合分析
- 定位问题根因并执行解决措施
- 验证成功率恢复情况
关键检查点
排查过程中需覆盖以下核心检查点,确保无遗漏:
- 静态资源加载:CDN 服务状态、JS / CSS 等静态资源是否加载成功、是否存在 404 / 500 等错误
- 接口调用:初始化阶段 API 的网络成功率 / 逻辑成功率、API 响应时间、报错信息
- 网络状况:不同地区 / 站点 / 运营商的网络延迟、链路连通性
- 错误信息:JS 执行错误、Console 错误、API 错误码、网关错误码
- 环境信息:IP 地址、站点、User Agent、操作系统等辅助信息,排查是否为特定场景的异常
注意事项
- 灵活使用筛选条件:根据实际异常场景,组合使用市场、时间、站点、URL、域名等筛选项,精准缩小排查范围
- 多维度综合分析:不依赖单一指标 / 单一看板,需结合监控、日志、性能分析等多维度数据交叉验证
- 关注趋势变化:优先按分钟粒度查看指标趋势,重点关注指标突变的时间点,而非单点数据的波动
- 及时更新配置:定期维护初始化阶段 API 列表,确保相关看板数据的准确性,避免因配置滞后导致排查偏差
- 灵活适配实际场景:本实践为标准化排查思路,实际排查需结合业务特性、异常现象做灵活调整