基于大数据的前端页面异常结果检测
如果无法正常显示,请先停止浏览器的去广告插件。
1. 第 十 六 届 D 2 前 端 技 术 论 坛
基于大数据的前端异常结果检测
王骕
2. 研发背景
观测
检测
目录
适用性及其它
工程化及产品化
3. 研发背景
4. 研发背景-定义问题
如何在客户场景下发现非预期的页面展现结果?
1
2
3
4
5
6
5. 研发背景-定义问题
如何在客户场景下发现非预期的页面展现结果?
• 页面在实际用户场景中展现内容及交互过程是否符合预期,是建立监控体系的最根本诉求。
• 监控中所称“白屏”, 是非预期结果中的一种极端情况,其检测条件是最容易简化的,但并非直接目的;
• 不能直接观测,是解题困难的根本原因;
6. 如何观测
7. 如何观测 – 建立观察窗口
把页面渲染的过程,理解为页面不断添加内容而由“不稳定”到“稳定”的过渡。
变化率
1.0
缺少统一实现!
0.5
一次满屏
用户页面活动..
NavigationStart
0
domContentLoad firstPaint
页面状态
load
首屏完成
时间线
★ 用户视觉稳定
★ 用户开始有继续交互的意识和动作
8. 如何检测
9. 理解原理 - 页面上看
32
49
248
页面渲染过程中的不同形态
会反馈在不同的DOM数量上
99
46
10. 理解原理 - 推论及验证
如果通过在页面渲染完成时收集dom数,上报一定数量的样本统计并绘制成图像,则:
Y: 样本数
G2
G3
G1
X: DOM数
一个页面在不同的渲染状态下对应 DOM 数量的可能成组分布,且各组间会有一个较清析的级差;
对 X 轴上的投影进行分类计算,则最少可以找出1组异常组;通过配置是否包含后续的 N 个分组,则可以监控到其
它非预期状态;
11. 验证推理 - 统计上看
12. 在更多页面上验证推论
13. 在同一页面的不同时间上验证
14. 如果无法直接分组
18 ~ 500+
15. 如果无法直接分组
815
32
26
16. 如果无法直接分组 - 借用流量维度
17. 总结原理
1、大部份页面在不同的渲染状态下对应 DOM 数量的可以成组分布,且各组间会有一个较清析的级差;
2、少部份不能直接分类的页面中,由于异常点集中于左下,所以仍可以根据其它方法进行样本分类,其
结果不具备绝对性,但比例变化时仍具参考性;
3、页面在客户侧的渲染形态分布是基本稳定的,如果渲染状态发生了变化那么由一定对应服务端或前端
功能的改变(功能或策略变动,页面型态切换,故障等)
18. 适用性及其它
19. 适用性及其它已知问题
20. 工程化及产品化
21. 工程化及产品化
22. Thanks