本文档介绍了EMAS白屏监控,详细说明了如何使用本功能,通过全面的信息采集与分析,有效监控和治理白屏现象,帮助用户提升白屏问题处理效率。
概述
白屏现象是影响用户体验和流失的关键问题之一。EMAS的白屏监测模块通过有效的指标和检测方法,帮助用户及时发现和修复白屏问题,提升应用的稳定性和用户满意度。通过对页面DOM得分的计算,我们可以量化白屏的严重程度,并提供详细的分析数据,指导优化方向。
白屏原因与表现
白屏通常发生在以下两个场景:
- 加载时:受网络延迟、资源加载失败或服务器错误影响,页面无法正常渲染。 
- 运行时:用户操作过程中可能由于JS错误或资源请求失败,导致页面突然变白。 
了解白屏的原因和表现形式,有助于更精准地定位问题。
白屏检测方式
EMAS白屏监测采用了一种改进的方式,通过遍历页面的DOM树,计算每个节点的层次和可见性,从而得出白屏得分。这种方法相较于传统手段具有更高的准确性,并且能够精细化地评估白屏的程度。
- 场景感知检测:在白屏检测过程中,我们会根据实际应用场景选择合适的检测时机。这不仅确保了能够捕捉到不同类型的白屏现象,还有效避免了过于频繁的检测对页面性能的负面影响。 
- 定量分析与优化算法:通过对DOM得分的计算,我们实现了对白屏程度的定量分析。我们从用户的视角出发,综合考虑了DOM元素的重叠、CSS属性等因素,以判断元素的可见性,使得白屏得分更具实际参考意义。同时,我们还对遍历算法进行了优化,以减少复杂页面情况下的计算消耗。 说明- 白屏得分算法:遍历页面的DOM树,并对每个可视元素进行评估,根据其在树中的深度来计算其白屏得分 ( - )。所有可视元素的分数总和构成页面的白屏得分 
准备工作
功能说明
趋势分析
白屏趋势展示筛选条件下,白屏指标的趋势图,查看白屏现象的波动和影响面。

| 指标 | 指标说明 | 
| 白屏数 | 发生白屏的次数 | 
| 白屏率 | 发生白屏的次数/总PV | 
| 白屏影响用户数 | 发生白屏的UV | 
| 白屏影响用户率 | 发生白屏的UV/总UV | 
建议您上报user_id字段,否则影响用户数、影响用户率指标无法计算。
分布分析
分布分析支持通过多维统计(如浏览器版本、操作系统版本、机型等)来观测白屏发生的分布情况以及定位问题。

- 默认以浏览器、系统、机型、城市四个维度展示白屏分布情况,支持点击“分布维度”按钮下拉勾选维度替换默认维度,最少选择1个,最多选择4个。 
- 点击  可以切换视图:分布排行、列表排行。 可以切换视图:分布排行、列表排行。
白屏列表
白屏列表展示了页面维度的白屏情况,包括发生白屏的所有页面URL、白屏数、影响用户数、最近发生时间和问题状态。

- 白屏得分:计算DOM深度得分判断白屏,数值越小,白屏越严重。列表中的白屏得分,展示筛选条件下,该页面发生的最严重白屏的得分,即白屏得分最小值。 
- 排序方式:指标支持排序,默认按照白屏数从高到低排序。 
- 查看详情:点击页面URL,进入到对应的白屏详情分析页。 
白屏详情
白屏详情支持针对页面维度做详细下钻分析,提供该页面白屏概况汇总的基本信息、趋势分析、分布分析和调用堆栈分析的问题分析能力,并提供每一次客户端上报的详细信息。
基本信息

| 参数 | 说明 | 
| 页面 | 页面URL | 
| 白屏数 | 白屏数=所选时间段内该页面发生白屏的总次数 | 
| 白屏率 | 白屏率=筛选条件下本页面的白屏次数/本页面PV | 
| 影响用户数 | 影响用户数=筛选条件下本页面发生白屏的UV | 
| 影响用户率 | 影响设备率=筛选条件下影响用户数/本页面UV | 
| 首次发生时间 | 所选时间段内首次发生的时间 | 
| 最近发生时间 | 所选时间段内最近发生的时间 | 
| 标签设置 | 对此错误类型添加标签,便于管理 一个错误信息最多支持10个标签,一个标签最多显示15个字符 | 
| 问题状态 | 问题状态支持修改,便于排查和追踪问题是否解决 
 | 
详细信息
展示同一页面中的所有客户端上报白屏的实例。左侧按照白屏发生的时间顺序排列,点击后右侧展示此次白屏的详细上报字段。

基础信息
基础信息显示了每条白屏的基础设备信息。
| 参数 | 说明 | 
| 用户id | 此次白屏的用户id | 
| 用户昵称 | 此次白屏的用户昵称 | 
| 会话id | 此次白屏的会话id | 
| 发生时间 | 此次白屏的发生时间 | 
| 上报时间 | 此次白屏的上报时间 | 
| 页面 | 此次白屏的页面 | 
| 浏览器 | 此次白屏的浏览器名称 | 
| 浏览器版本 | 此次白屏的浏览器版本 | 
| 系统 | 此次白屏的系统名称 | 
| 系统版本 | 此次白屏的系统版本 | 
| 应用版本 | 此次白屏的应用版本 | 
当前选项
当前选项展示了每条白屏的详细信息。
| 参数 | 说明 | 
| 国家/地区 | 设备所处的地理位置,根据IP推算 | 
| 省份 | 设备所处的省份 | 
| 城市 | 设备所处的城市 | 
| 机型 | 设备的型号标识 | 
| 用户IP | 设备的公网IP | 
| 分辨率 | 设备的分辨率 | 
| JS SDK版本 | 所用SDK的版本号 | 
| 白屏得分 | 白屏DOM得分 | 
治理技巧
在解决白屏问题的过程中,结合阿里丰富的业务经验,我们总结了一些常见的白屏情况以及相应的治理策略。这些技巧将帮助用户更好地分析数据并采取有效措施。
白屏与其他错误的关联
在白屏问题排查时,常常可以发现白屏现象与其他错误,如JavaScript错误(JSError)或资源加载错误,具有明显的关联。当某个时间点白屏数量显著增加,同时JSError或资源加载错误的次数也同步增长时,这往往表明对应的错误可能是导致白屏的根本原因。
排查步骤:
- 错误日志分析:使用JSError插件查看具体的错误信息,如错误消息、堆栈跟踪等。 
- 错误与白屏的关系:对比错误发生的时间和白屏事件,确定两者之间的关联性。 
- 问题修复与观察:定位并解决这些错误后,观察白屏数量是否有所减少,以验证问题解决的有效性。 
结合筛选、多维度下钻、白屏详情进行分析
为进一步提高白屏问题的诊断效率,我们引入了一些新的分析方法:
- 结合筛选:在控制台中,利用筛选功能对不同维度的数据进行过滤,聚焦于特定场景或条件下的白屏事件。这有助于快速识别异常模式或特定用户群体中频繁出现的问题。 
- 多维度下钻:通过多维度的下钻分析,用户可以从全局视角逐步深入到更细节的层次。比如,可以按时间、地理位置、浏览器版本等维度查看白屏数据,以便识别影响白屏发生的潜在因素。 
- 白屏详情分析:利用提供的白屏详情视图,可以查看每个白屏事件的具体信息,包括触发时间、页面路径、白屏原因等。这些细节有助于重现问题场景,精确定位问题来源。 
通过以上技巧和方法,用户能够更系统地分析白屏问题,采取有效修复措施,从而改善应用的稳定性和用户体验。
补充信息
异常监控用于观测您的用户使用应用的稳定性,尤其在产生客诉的情况下,便于快速分析和定位原因,因此建议100%采样。如果有成本控制需求,可以在上报配置>白屏中灵活配置采样规则和采样率。