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适 ...
随机推荐
- 计数排序/Counting Sort
计数排序的算法思想: 对于每一个元素x,只要确定了元素x有多少个比它小的元素,那么就可以知道其最终的位置. 记输入数组为A[n],存放最后排序输出的数组为B[n],提供临时存储空间的中间数组记为C[k ...
- nova scheduler 介绍
在 openstack 中,scheduler 负责从宿主机(运行 nova-compute 的节点)中根据一系列的算法和参数(CPU 核数,可用 RAM,镜像类型等 )选择出来一个,来部署虚拟机(i ...
- golang实现unicode码和中文之间的转换
将中文转换为unicode码,使用golang中的strconv包中的QuoteToASCII直接进行转换,将unicode码转换为中文就比较麻烦一点,先对unicode编码按\u进行分割,然后使用s ...
- No caching ——无缓存工具
No caching ——无缓存工具 无缓存工具阻止客户端应用程序(如Web浏览器)缓存任何资源,因此,请求总是发送到远程站点,所以我们总能看到最新版本. 适用场景 开发每次新部署了一版环境,说解决了 ...
- Linux入门练习2
export命令用来设置环境变量. 使用单引号时,变量不会被扩展,将依照原样显示.示例: 如果变量未定义过,则什么都不打印: 获得变量值长度 识别当前所使用得shell: 检查是否为超级用户: UID ...
- Python时间系统
Python的time和datetime模块提供了时间日期工具, python中的时间有4种表示方式: datetime obj time obj/tuple posix timestamp time ...
- XML Parsing Error: no element found Location: moz-nullprincipal:{23686e7a-652b-4348-92f4-7fb3575179ed} Line Number 1, Column 1:^
“Hi Insus.NET, 我有参考你下午发布的一篇<jQuery.Ajax()执行WCF Service的方法>http://www.cnblogs.com/insus/p/37278 ...
- 【ibatis】IBatis介绍
Ⅰ .什么是Ibatis? ① iBATIS的是一个持久层框架,它能够自动在 Java, .NET, 和Ruby on Rails中与SQL数据库和对象之间的映射.映射是从应用程序逻辑封装在XML配置 ...
- 我的第一篇博文,开启我的Java程序人生之旅!
原文:https://blog.csdn.net/CodeYearn/article/details/89190342 自我介绍: 姓名:蔡余 性别:男 年龄:21 职业:Java开发工程师 家乡:湖 ...
- 环境配置问题: 关于IDEA配置tomcat
1. 先下载并解压缩一个tomcat7 2.打开idea 3. -Xms256M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128M 关于热部署设置参考: ...