OneAPM NI 基于旁路镜像数据的真实用户体验监控
在这个应用无处不在的时代,一次网络购物,一次网络银行交易,一次网络保险的购买,一次春运车票的购买,一次重要工作邮件的收发中出现的延时,卡顿对企业都可能意味着用户忠诚度下降,真金白银的损失。
因而感知真实用户体验(Real User Experience),将用户访问量,每个页面访问量的变化,应用的错误率,平均响应时间等指标作为网站运营的基本KPI已经是势在必行。利用真实用户体验工具对应用、网站进行性能检测和业务分析已经成为运营一个对外提供服务的应用的基础要求。真实用户体验监测(Real User Experience Monitoring)通过采集应用或者网站的全部访问数据,记录每个用户与网站的交互,从而完成用户终端类型分析,用户访问量分析,不同页面功能访问量分析,不同页面功能的平均响应,错误率等指标分析等。
真实用户体验工具有不同的实现方案:日志,浏览器端脚本嵌入,移动APP的SDK插码,交换机镜像流量数据采集等。如果应用由多个应用开发商合作完成,日志和移动 APP SDK 形式的真实用户体验分析对应用的开发提出了较高的要求。浏览器插码方式对于代码书写不规范的应用又存在一定风险。相比较来说采用交换机镜像流量采集的方式既安全又省心。
与脚本植入或者 SDK 形式的数据采集不同,旁路方式无法感知用户的动作,无法明确区分页面、页面元素与 AJAX 的关系。所以一般的旁路式 RUM 产品要么是逃避这个问题采用只按照URL进行性能统计的方式,这种方式不区分页面和页面里的资源以及 AJAX 调用,这种方式对故障排查有一定价值,但却不能体现用户的真实体验而且完全没有将客户端设备的卡顿和网络耗时计算在内,通过这个方式统计出来的应用平均响应时间比用户体验到的达到降低。 高级些的RUM 产品能够推算出页面与元素之间的关联关系,但需要客户指定一个页面的最后一个元素,从而将异步 AJAX 请求排除在用户响应时间之外,但是现代应用大部分都使用了 AJAX 调用,每个页面都如此配置对使用和实施人员来说太费时间。

OneAPM NI 通过分析浏览器与服务器之间的报文字段,根据 Session,页面之间的关联关系,页面与AJAX调用的时间关系等推算出页面的构成以及与异步AJAX请求间的关系,从而能够计算出与用户在浏览器端发送页面请求到看到页面全部内容非常接近的用户响应时间值。
OneAPM NI 首先将 URL 调用根据内容类型区分为页面和 WebService 调用。只有页面类型的才纳入用户体验的计算范畴。一个页面是由一个URL群构成,包含静态资源,脚本和 AJAX 调用。页面的耗时是从页面的第一个元素请求开始到最后一个元素下载结束之间的时间。这个过程包含了浏览器对中间元素的处理时间,它与在浏览器端看到的时延差异在于没有将浏览器对最后元素的渲染时间计算在内。有了 Ni 的页面及元素瀑布图后,我们就可以对用户侧缓慢的问题做基础的判断,判断性能问题发生在哪个应用,哪个页面,哪个元素,在网络侧,应用侧还是浏览器侧。
本文系 OneAPM 工程师编译整理。OneAPM 能为您提供端到端的应用性能监控解决方案。想阅读更多技术文章,请访问 OneAPM 官方技术博客。
OneAPM NI 基于旁路镜像数据的真实用户体验监控的更多相关文章
- SQL SERVER 基于数据库镜像的主从同步(数据库镜像实践汇总)
SQL SERVER 基于数据库镜像的主从同步 Author:chaoqun.guo createtime:2019-03-26 目录 SQL SERVER 基于数据库镜像的主从同步... 1 ...
- 基于 K8S 构建数据中心操作系统
在 12 月 22 日 ECUG 的下午场 ,七牛云容器计算部技术总监袁晓沛为大家带来了主题为<基于 K8S 的 DCOS 之路>的精彩分享,向大家介绍了七牛容器云目前 K8S 的状况和产 ...
- 基于单细胞测序数据构建细胞状态转换轨迹(cell trajectory)方法总结
细胞状态转换轨迹构建示意图(Trapnell et al. Nature Biotechnology, 2014) 在各种生物系统中,细胞都会展现出一系列的不同状态(如基因表达的动态变化等),这些状态 ...
- 徒手打造基于Spark的数据工厂(Data Factory):从设计到实现
在大数据处理和人工智能时代,数据工厂(Data Factory)无疑是一个非常重要的大数据处理平台.市面上也有成熟的相关产品,比如Azure Data Factory,不仅功能强大,而且依托微软的云计 ...
- 基于Web的数据推送技术(转)
基于Web的数据推送技术 对于实时性数据显示要求比较高的系统,比如竞价,股票行情,实时聊天等,我们的解决方案有以下几种.1. HTTP请求发送模式,一般可以基于ajax的请求,比如每3秒一次访问下服务 ...
- 【转】在Spring中基于JDBC进行数据访问时怎么控制超时
http://www.myexception.cn/database/1651797.html 在Spring中基于JDBC进行数据访问时如何控制超时 超时分类 超时根据作用域可做如下层级划分: Tr ...
- Oracle undo 镜像数据探究
Oracle undo 镜像数据探究 今天是2013-08-18,隔别一周的 ...
- 数据权限设计——基于EntityFramework的数据权限设计方案:一种设计思路
前言:“我们有一个订单列表,希望能够根据当前登陆的不同用户看到不同类型的订单数据”.“我们希望不同的用户能看到不同时间段的扫描报表数据”.“我们系统需要不同用户查看不同的生产报表列”.诸如此类,最近经 ...
- H5页面基于接口实现数据交互
对于现在APP开发来说,目前流行的两个方式是原生和H5.就如同之前业界程序猿争论的BS和CS之争一样,业界对于H5和原生也有不小的争论.对于前者的争论在于PC端,后者在于移动端上体现. 那一个APP适 ...
随机推荐
- c++的动态绑定和静态绑定
为了支持c++的多态性,才用了动态绑定和静态绑定. 1.对象的静态类型:对象在声明时采用的类型.是在编译期确定的. 2.对象的动态类型:目前所指对象的声明.在运行期决定.对象的动态类型可以更改,但是静 ...
- ASP.NET状态管理的总结
阅读目录 开始 hidden-input QueryString Cookie ApplicationState ViewState,ControlState Session Profile 各种状态 ...
- Vue + Element UI 实现权限管理系统 前端篇(三):工具模块封装
封装 axios 模块 封装背景 使用axios发起一个请求是比较简单的事情,但是axios没有进行封装复用,项目越来越大,会引起越来越多的代码冗余,让代码变得越来越难维护.所以我们在这里先对 axi ...
- Makefile中.PHONY的作用
单词phony (即phoney)的意思是:伪造的,假的.来自collins的解释是: If you describe something as phoney, you disapprove of i ...
- ABP框架服务层的接口与实现(增删改查)
public interface ITaskAppService : IApplicationService { IList<TaskDto> GetAllTasks();//所有 Get ...
- Linux终端回话记录和回放工具 - asciinema使用总结
目前linux终端回放工具常见的就是asciinema和script了, 这两种工具都有那种类似于视频回放的效果.虽然这样做的代价是录制过程中需要占用一定的cpu资源以及录制后可能会因为视频文件太大而 ...
- tar 压缩解压
tar命令 tar可以为文件和目录创建档案.利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件, 或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可 ...
- Json格式循环遍历,Json数组循环遍历
Json格式数据如何遍历,这里我们可以用for..in实现 例如最简单的json格式 , 'handsome' : 'yes' }; for( var key in json1 ){ console. ...
- 用canvas画弧形进度条
function toCanvas(id ,progress){ //canvas进度条 var canvas = document.getElementById(id), ctx = canvas. ...
- c# winform 获取当前程序运行根目录
1 // 获取程序的基目录. 2 System.AppDomain.CurrentDomain.BaseDirectory 3 4 5 // 获取模块的完整路径. 6 System.Diagnosti ...