完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
摘要: 本文将为您介绍,在采集多类日志数据的情况下,阿里云业务实时监控服务(ARMS)之前端监控如何优化日志上报前端监控 (又叫UEM,User Experience Management, 用户体验管理) 一般帮助用户定位页面性能瓶颈、复现用户端的偶发问题。其监控的主要功能包括但不限于:
HTTP/1.1 效果HTTP/2.0 效果压缩头部后,每条日志请求都大幅缩小,响应的速度也相应提升。HTTP/2 多路复用用户浏览器和日志服务器之间产生多次 HTTP 请求,而在 HTTP/1.1 Keep-Alive 下,日志上报会以串行的方式传输,并让后面的日志上报延时。通过 HTTP/2 的多路复用来合并上报,可为您节省网络连接的开销。第三招:HTTP POST 合并POST 请求因为 request body 可以有更大施展空间,相比一条日志一次 HTTP HEAD 请求的方式,在 HTTP POST 中一次包含多条日志的内容更加经济。在 HTTP POST 的基础上,可以顺便解决用户关掉或者切换页面造成的漏报问题。以前常见的解决方式是监听页面的 unload 或者 beforeunload 事件,并以通过同步的 XMLHttpRequest 请求或者构造一个特定 src 的 标签来延迟上报。window.addEventListener("unload", uploadLog, false);function uploadLog() { var xhr = new XMLHttpRequest(); xhr.open("POST", "/r.png", false); // false表示同步 xhr.send(logData);}这种上报方式的弊端是会影响下一个页面的性能。更优雅的方式是使用 navigator.sendBeacon(),它能够异步发送日志数据。window.addEventListener("unload", uploadLog, false);function uploadLog() { navigator.sendBeacon("/r.png", logData);}合并前合并后(navigator.sendBeacon)理想情况下,合并 N 个日志上报耗费的总时间可缩减至原来的 1/N。总结阿里云前端监控的日志上报整体优化流程如下:经过这几步优化后,日志上报性能明显提升: |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 23:07 , Processed in 0.560817 second(s), Total 71, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号