在这个应用无处不在的时代,一次网络购物,一次网络银行交易,一次网络保险的购买,一次春运车票的购买,一次重要工做邮件的收发中出现的延时,卡顿对企业均可能意味着用户忠诚度降低,真金白银的损失。html
于是感知真实用户体验(Real User Experience),将用户访问量,每一个页面访问量的变化,应用的错误率,平均响应时间等指标做为网站运营的基本KPI已是势在必行。利用真实用户体验工具对应用、网站进行性能检测和业务分析已经成为运营一个对外提供服务的应用的基础要求。真实用户体验监测(Real User Experience Monitoring)经过采集应用或者网站的所有访问数据,记录每一个用户与网站的交互,从而完成用户终端类型分析,用户访问量分析,不一样页面功能访问量分析,不一样页面功能的平均响应,错误率等指标分析等。浏览器
真实用户体验工具备不一样的实现方案:日志,浏览器端脚本嵌入,移动APP的SDK插码,交换机镜像流量数据采集等。若是应用由多个应用开发商合做完成,日志和移动 APP SDK 形式的真实用户体验分析对应用的开发提出了较高的要求。浏览器插码方式对于代码书写不规范的应用又存在必定风险。相比较来讲采用交换机镜像流量采集的方式既安全又省心。安全
与脚本植入或者 SDK 形式的数据采集不一样,旁路方式没法感知用户的动做,没法明确区分页面、页面元素与 AJAX 的关系。因此通常的旁路式 RUM 产品要么是逃避这个问题采用只按照URL进行性能统计的方式,这种方式不区分页面和页面里的资源以及 AJAX 调用,这种方式对故障排查有必定价值,但却不能体现用户的真实体验并且彻底没有将客户端设备的卡顿和网络耗时计算在内,经过这个方式统计出来的应用平均响应时间比用户体验到的达到下降。 高级些的RUM 产品可以推算出页面与元素之间的关联关系,但须要客户指定一个页面的最后一个元素,从而将异步 AJAX 请求排除在用户响应时间以外,可是现代应用大部分都使用了 AJAX 调用,每一个页面都如此配置对使用和实施人员来讲太费时间。服务器
OneAPM NI 基于旁路镜像数据的真实用户体验监控 技术分享网络
OneAPM NI 经过分析浏览器与服务器之间的报文字段,根据 Session,页面之间的关联关系,页面与AJAX调用的时间关系等推算出页面的构成以及与异步AJAX请求间的关系,从而可以计算出与用户在浏览器端发送页面请求到看到页面所有内容很是接近的用户响应时间值。异步
OneAPM NI 首先将 URL 调用根据内容类型区分为页面和 WebService 调用。只有页面类型的才归入用户体验的计算范畴。一个页面是由一个URL群构成,包含静态资源,脚本和 AJAX 调用。页面的耗时是从页面的第一个元素请求开始到最后一个元素下载结束之间的时间。这个过程包含了浏览器对中间元素的处理时间,它与在浏览器端看到的时延差别在于没有将浏览器对最后元素的渲染时间计算在内。有了 Ni 的页面及元素瀑布图后,咱们就能够对用户侧缓慢的问题作基础的判断,判断性能问题发生在哪一个应用,哪一个页面,哪一个元素,在网络侧,应用侧仍是浏览器侧。工具
本文系 OneAPM工程师编译整理。OneAPM 能为您提供端到端的应用性能监控 解决方案。想阅读更多技术文章,请访问 OneAPM 官方技术博客。性能