前端监控-1

131 阅读3分钟

一 前端监控目标

1. 稳定性

错误名称备注
JS错误JS执行错误或者promise异常
资源异常script, link等资源加载异常
接口错误ajax或fetch请求接口异常
白屏页面空白

2. 用户体验

错误名称备注
TTFB(首字节时间)浏览器发起第一个请求到数据返回第一个字节 所消耗的时间
FP(首次绘制)首次绘制包括用户自定义的背景绘制, 它是第一个像素点绘制到屏幕的时间
FCP(首次内容绘制)首次内容绘制是浏览器第一个dom 渲染到屏幕的时间,可以是任何文本,图像,svg等的时间
FMP (首次有意义绘制)首次有意义绘制是页面可用性的亮度标准
FID (首次输入延迟)用户首次和页面交互到页面响应交互的时间
卡顿超过 50m的长任务

3. 业务扩展

错误名称备注
PVpageView 页面的点击量或浏览量
UV访问某个站点不同IP地址的人数
页面的停留时间用户在一个页面停留的时间

前端监控流程

  • 埋点
  • 数据上报

----------------上面跟前端紧密些------

  • 分析和计算 采集到的数据进行加工
  • 可视化展示 将数据按各种维度展示
  • 监控报警 发现问题后按一定的条件触发警报

常见的埋点方案

  1. 代码埋点: 嵌入代码埋点,比如监控用户的点击事件,在用户点击的时候插入一段代码,保存这个监听行为或某种数据格式直接传给服务器。
优点:任意时刻,精确的发送或保存信息
缺点: 工作量大
  1. 可视化埋点 一个界面,点点点就可以埋点了。
  • 通过可视化交互的手段、代替代码埋点(不需要开发人员参与)
  • 将业务代码和埋点代码分离、提供一个可视化交互的页面
  • 可视化埋点其实是用系统代替手工插入埋点
优点: 减少开发的工作量
缺点: 不是很灵活
  1. 无痕埋点
  • 前端的任意一个事件都被绑定一个标识,所有的事件斗记录下来。(无痕埋点)
  • 通过定期上传记录文件,配合文件解析,解析出来我们想要的数据,并生成可视化报告。
优点:无痕埋点的优点是采集全量数据,不会出现漏埋或误埋等现象。
缺点: 给数据传输和服务器增加压力,也不太灵活。

为什么使用git上传

不管是请求git文件还是请求js文件或者页面调用接口,只要能上报,服务器不管具体的上报方式。但为什么现在都用git上报呢?

1. 一般打点域名都不是当前域名,所以请求会跨域,而跨域请求容易配置不当,被浏览器拦截并报错,这是不能接受的。图片的src属性不会跨域,并且同样可以发起请求。(排除接口上报)
2.防止阻塞页面加载,影响用户体验
- 反复操作dom不仅会引发性能问题,而且载入js/css资源也会阻塞页面渲染,影响体验。《script》,link.
3.相比jpg/png, gif的体积更小
- 最小的bmp需要74个字节,png需要67个字节,gif需要47个字节,git比BMP节约41%。
大多使用1*1透明的gif图片上报
                                                           
                                                           -- 来自老陈打码

无埋点

复制百度的一段代码即可,省时省力不省钱,无法针对性特点场景拿到数据,由后端过滤出有用数据,服务器压力大。