OneAPM NI 基于旁路镜像数据的真实用户体验监控

news/2024/7/5 20:09:50

在这个应用无处不在的时代,一次网络购物,一次网络银行交易,一次网络保险的购买,一次春运车票的购买,一次重要工作邮件的收发中出现的延时,卡顿对企业都可能意味着用户忠诚度下降,真金白银的损失。

因而感知真实用户体验(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 官方技术博客。


http://www.niftyadmin.cn/n/1558309.html

相关文章

Element UI 使用 el-carousel 焦点图

前端经常会遇到焦点图效果,在使用Element UI时,我们可以选择使用 el-carousel,这里我们简单了解一下: 下载 Element UI (这里就不说按需加载了) cnpm i element-ui -Smain.js引用 import Element from element-ui Vue.use(Elem…

Canvas画板---手机上也可以用的画板

学习制作画板之前,我们先来了解一下canvas标签 一.canvas标签 1.canvas标签与img标签相似,但是canvas标签是一个闭合标签,并且没有src alt属性2.canvas标签有两个属性,width,height。我们在页面上用canvas绘制一个画布…

Element Ui 使用loading

引入loading import { Loading } from element-ui;//使用、自定义 loadingInstance Loading.service({text:拼命加载中...,spinner:el-icon-loading,customClass:lb-loading-icon-cls,background:transparent});//关闭 loadingInstance.close();也可以直接使用$loading this…

Hacking Tools

Hacking Tools 种各样的黑客工具浩如天上繁星,这也让许多刚刚入门安全技术圈的童鞋感到眼花缭乱,本文整理了常用的安全技术工具,希望能够给你带来帮助。以下大部分工具可以在 GitHub 或 SourceForge 下载。 通用调试器 binwalk:二…

git查看远程仓库地址

如何查看远程仓库的地址 git remote -v origin https://xxx.com/xxxx/project-name.git (fetch) origin https://xxx.com/xxxx/project-name.git (push)

null和undefined相等比较

在&#xff08;相等&#xff09;判断中&#xff0c;null和undefined相等&#xff08;它们也与自身相等&#xff09;&#xff0c;除此之外不与其他值相等。 示例代码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-…

git更改远程仓库地址

方法1.修改命令 git remote set-url origin <url>方法2.先删后加 git remote rm origin git remote add origin [url]

git拉取拷贝远程仓库

直接拉取 git clone https://xxx.com/xxxx/project-name.git修改项目名称 git clone https://xxx.com/xxxx/project-name.git project-edit欢迎评论区留言&#xff0c;共同学习~