web监控数据上报方案

前端行为监控(埋点)、异常监控、性能监控收集到的数据需要上报给服务端,目前较为常用的方案为三种。

1. 传统XHR请求

  • 优点:可以灵活地设置请求头属性,post请求可以发送大体量数据,满足特定场景的埋点需求。

  • 缺点:数据量大的请求占用带宽资源多,增加服务器压力。页面销毁时的监控埋点大概率上报失败。

2. Image 对象

利用图标对象的src属性发送get请求上报数据

const image = new Image()
image.src = 'https://monitor.cn/abc.png'
  • 优点:上报数据的请求不需要接收响应,可灵活跨域,src请求体量小,速度快,页面销毁时的监控埋点会等上报请求发送完毕,再执行页面卸载。

  • 缺点:无法发送大体量数据,页面销毁时有监控埋点会让页面关闭速度变慢,影响用户体验。

3. Beacon API

Beacon api 是w3c新引入的补充性api,就是用来解决web页面在触发卸载销毁事件unload期间会中断所有异步xhr请求的问题。

这个API给navigator对象增加了一个sendBeacon()方法。

这个方法接收一个URL和一个数据有效载荷参数,并会发送一个POST请求。

可选的数据有效载荷参数有ArrayBufferView、Blob、DOMString、FormData实例。

它会保证页面在已经关闭的情况下也会发送请求。

document.onunload = function () {
  navigator.sendBeacon('https://monitor.cn/report', data)
}

不过它也有缺点:

只支持post请求,并且发送的数据量不会像正常xhr的post数据量那么大,最大数据量大小是由客户端(用户浏览器)版本决定的,chrome@70版本测试大概15MB左右。
因为是新补充的api,会存在浏览器兼容性问题,如图:
在这里插入图片描述

总结

  • 上报轻量级的数据时可以采取image src属性进行上报
  • 特定场景需要采集大量级的数据可以改用普通post请求方式
  • 在需要监测用户关闭浏览器时上报数据,首选采用beaconApi方式,若用户的当前浏览器不支持该方法,可降级为image方案。目前很多大厂已采用这种混合式埋点方案。

————————————————
版权声明:本文为CSDN博主「清晨细雨霏」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_34929433/article/details/123115601

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web前端监控解决数据采集问题的科学性主要体现在以下几个方面: 1. 数据采集技术的不断进步:随着互联网技术的不断发展和创新,数据采集技术也在不断改进和完善。目前,Web前端监控中采用的数据采集技术已经相当成熟和科学,如使用JavaScript代码收集网站或应用的信息、使用API接口采集数据等。 2. 数据采集算法的优化:针对数据采集问题,Web前端监控可以采用优化算法,如使用分布式架构、数据压缩技术等,来提高数据采集的效率和准确性。 3. 数据质量控制:Web前端监控中采集的数据需要经过有效的质量控制,以确保数据的准确性和可靠性。监控系统可以采用数据清洗、去重、异常检测等技术,对采集到的数据进行处理和筛选,从而提高数据质量。 4. 数据存储和管理:Web前端监控需要采集大量的数据,因此需要建立完善的数据存储和管理系统,以便于对数据的查询、分析和使用。目前,Web前端监控中常用的数据存储和管理技术包括关系型数据库、非关系型数据库、内存数据库等。 综上所述,Web前端监控解决数据采集问题的科学性主要体现在采用成熟和科学的数据采集技术、优化数据采集算法、进行数据质量控制以及建立完善的数据存储和管理系统等方面。这些技术和方法的应用,可以有效解决数据采集问题,提高Web前端监控的效率和准确性,从而帮助企业或个人及时发现问题和瓶颈,提升网站或应用的性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值