前端监控SDK开发 | 青训营笔记

86 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天


课程介绍

  1. 引入前端监控的概念
  2. 介绍前端监控的性能指标与异常
  3. 实战:封装用于监听性能指标与前端异常的监听器
  4. 实战:封装一个有完整上报能力的 sdk

前端监控监控了什么?

  • 性能指标
  • 异常事件
  • 用户行为

前端监控之常用性能指标

Web性能标准的诞生

早期网页是纯静态的,但随着Web爆发式发展,页面交互越来越复杂。开发者开始思考如何提高Web性能、改善用户体验。 因此,2010年8月,W3C成立了Web性能工作组,由来自Google和Microsoft的工程师担任主席,目标是制定衡量Web应用性能的方法和API。

1.png
传统的性能指标

传统的性能指标主要依赖Navigation Timing或者Navigation Timing 2,通过记录一个文档从发起请求到加载完毕的各阶段的性能耗时,以加载速度来衡量性能。

2.png 3.png 4.png
以用户为中心的性能指标

传统的性能指标专注于容易衡量的技术细节,但是它们很难反应出用户所真正关心的是什么。如果你仅仅是把加载速度优化的更快,你很快就会发现网站的用户体验依然很差。

5.png 6.png

概述:前端监控之前端常见异常

静态资源错误
  • 静态资源:加载页面所需的html、css和js等文件,以及其他各类多媒体文件,如图片、音频和视频等。
  • 静态资源错误:在拉取和加载静态资源的过程中发生了预期之外的错误,如网络异常等,导致静态资源无法正常渲染在页面上。
请求异常

Http请求状态码分类

  • 100-199-------->信息响应
  • 200-299-------->成功响应
  • 300-399-------->重定向消息
  • 400-499-------->客户端错误响应
  • 500-599-------->服务端错误响应

请求异常=请求响应状态码>=400

对于通过异步请求拉取的静态资源错误也可选择归纳到请求异常

状态码0是什么?

7.png

请求成功率=请求成功数/(请求成功数+请求失败数)

JS错误

在页面运行时发生的JS错误会严重影响页面的正常渲染与交互,是前端监控的重点。

8.png
白屏异常

通常导致白屏发生的原因:

  • 发生JS错误导致关键资源渲染失败
  • 请求异常或静态资源加载失败
  • 长时间的JS线程繁忙阻塞渲染任务

小试牛刀:监控前端性能与异常

性能指标监控
9.png

利用Performance和PerformanceObserver可以监控到一些标准的渲染性能数据

10.png 11.png
JS错误监控

利用window.addEventListener的error和unhandledrejection可以监控到全局的js错误。

12.png 13.png

渐入佳境:封装一个通用的sdk

前端监控流程概述
14.png
临门一脚:数据上报
15.png 16.png

引用参考

字节青训营第十二节课前端监控SDK开发