终端用户监控:真实用户监控还是模拟监控?

摘要:
与真实用户监控不同,模拟监控不跟踪真实用户会话,这具有重要意义。这意味着检测报警比其他真实用户监控数据更有帮助。其真实用户监控产品BrowserInsight和模拟监控产品CloudTest相辅相成,致力于为您提供全面的网站监控体验。

【编者按】本文作者 Dan Kuebrich 是 AppNeta 公司应用性能产品主管,在本文中,作者通过分析两种终端用户监控方式的利弊,结合具体情况为监控的选择提出建议,本文系 OneAPM 工程师编译整理。

终端用户的性能大多是企业判断 Web 应用程序的标准,也就是说应用程序的响应是否能满足企业的标准。研究表明,在用户需求不断增长的同时,页面平均访问量也与日俱增——相对于 2010 来说已经增长了一倍。结合市场的频繁发布和更新,当下优化的步伐永远都无法及时跟上。

因此从终端用户的角度出发,对应用性能进行持续监控已成为关键。随着更多监控方法的涌现,用户又应该如何挑选最好的方法呢?

真实用户监控

终端用户监控:RUM 还是综合监控?
尽管 Web 应用服务器端的性能可以通过数据中心的 HTTP 请求进行观察测量,但整页加载时的 CDN 静态内容下载、页面渲染、执行 JavaScript 等数据却无法很好的监测。现实世界中,真实用户监控通常利用 JavaScript 脚本嵌入到 web 页面,在浏览器上收集终端用户在浏览过程中的性能数据。

这种监控有助于提升对应用性能的业务理解。收集的数据显示了页面加载的全部时间,基于世界各地的不同浏览器。这种监控适用于桌面、移动端和平板电脑的浏览器。

衡量实际数据的最大优势是不需要对重要用例的预定义。在每个用户体验应用时,真实用户监控捕捉所有数据,所以无论用户看到什么页面,都能为监控提供有效的性能数据。对于功能和内容不断变化的大型网站或者复杂应用,这些数据非常重要。

随着浏览器 API 的研究深入,如 Navigation Timing API,真实用户监控数据的细节也远胜以往。它可以将浏览器返回时间细致地划分为构建 DOM 的时间和到渲染内容完成之前的时间。这是一个很好的开端,尤其是能对全面捕捉的用户数据进行很好的分类。如果一个页面加载缓慢,那是什么原因导致的呢?但尽管真实用户监控提供这个切入点,也并不一定能精确定位。此外,「单页面应用程序」,也就是那些不会执行完全页面加载的应用也会对收集有效的真实用户监控数据造成阻碍,如 GMail 和 Facebook。

整体水准的提高也可能改善当前的状况,如 Resource Timing API,而现在真实用户监控也非常适用于识别应用程序中是否存在问题。它甚至还提供了一些高级分类——是网络问题、应用服务器问题或终端环境问题?但是在这个基础上,真实用户监控还无法区分流量下降还是网络未连接。其次,真实用户监控中的延迟还可能表示后端性能退化,或者只是相对缓慢的报告生成功能造成使用过程中的暂时增长。而真实用户监控针对此问题所提供的信息还远远不够。

模拟性能监控

终端用户监控:RUM 还是综合监控?
模拟性能监控,有时也被称为主动监控,通过外部代理在 Web 应用上运行脚本事务。这些脚本模拟典型的用户行为,比如搜索、查看产品、登录、注销等步骤来评估用户的真实体验。通常情况下,综合监控可以由轻量的低级别代理实现,但随着 Web 应用的复杂化,越来越有必要将这些代理在完整的 Web 浏览器上运行,才能处理页面加载过程中的 JavaScrip、CSS 和 AJAX 调用。

与真实用户监控不同,模拟监控不跟踪真实的用户会话,有其重要的意义。首先,因为脚本在已知位置按规律进行一系列步骤,所以它的性能是可预测的。这意味着它比冗杂的真实用户监控数据更有助于检测警报。其次,由于它预见性地在应用外部执行,所以在评估网站的可用性和网络问题方面,模拟监控比真实用户监控更为突出,尤其是集成网络监控之后。

实际上很多公司都会在生产之前采用模拟监控,与 Selenium 集成测试的形式。模拟事务在生产中可以重用相同的脚本(只要不改变数据)。随着应用程序越来越复杂,代理指标如负载或服务器可用性在服务器正常运行时变得不那么有用。在生产环境中运行 Selenium 脚本不再是代理指标;它精确地测量正常运行时间,如果模拟事务完成将是一个很好的参考。

最后,由于模拟监控可以完全控制客户端(不像 sandboxed JS 驱动的真实用户监控),可以收集足够的细节——完整的图表、资源调配的性能,甚至是页面加载的截屏/视频等。就目前来说,这种细节检测是了解单页应用状态转换性的最好途径。

谁更好?

再三思索一下的模拟监控和真实用户监控之间的区别,权衡其中的利弊。似乎是各有所长,那到底哪种方式更好?

或许,两者之间并非竞争,更像是互补关系。模拟监控提供详情、可靠性和可用性,而真实用户监控会提供真实的用户体验。基于这个原因,这里显然需要将模拟监控和真实用户监控相结合才能实现更好的应用监测。

模拟 + 真实 = 绝配

使用真实用户监控 + 模拟监控,用户可以描绘出一段时间内的真正用户流量,了解不同区域、浏览器和不同综合脚本下的性能差异。

在这里,机构既可以将模拟监控立足于真实用户数据,也在全新的跨区域的真实环境中观测综合性能,从而在 Web 应用的全方位监测上更进一步。
终端用户监控:RUM 还是综合监控?

原文链接:http://www.appneta.com/blog/rum-vs-synthetic/

OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。旗下真实用户监控产品 Browser Insight 和模拟监控产品 Cloud Test 相辅相成,致力于为您提供全面的网站监测体验。和想阅读更多技术文章,请访问 OneAPM 官方博客
本文转自 OneAPM 官方博客

免责声明:文章转载自《终端用户监控:真实用户监控还是模拟监控?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇对象建模c# 读取写入excel单元格(包括对excel的一些基本操作)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Flask的response返回形式

from flask import Flask, send_file, jsonify # 导入Flask类 from flask import render_template app = Flask(__name__) #创建flask应用对象,app=application # 第一中返回,返回一个响应 @app.route("/index")...

SQL server 2008 数据库企业版安装教程图解

SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。在现今数据的世界里,公司要获得成功和不断发展,他们需要定位主要的数据趋势的愿景。微软的这个数据平台愿景帮助公司满足这些数据爆炸和下一代数据驱动应用程序的需求。微软将继续投入和发展以下的关键领域来支持他们的数据平...

linux下卸载apache方法小结

方法一 代码如下: 1.root@server ~]# rpm -qa|grep httpdhttpd-2.2.3-11.el5_2.centos.4httpd-manual-2.2.3-11.el5_2.centos.4 说明:rpm –qa | grep httpd命令是为了把httpd相关的包都列出来, 我上面的例子是Linux默认安装apache...

【转】Win7注册表的使用(更新中)

一、注册表的存储结构和数据类型 1、基本概念:   Windows 7的注册表主要由“键”和“键值”构成,称HKEY为根键(RootKey),SubKey为子键。   键(Key):“位于左侧窗格如同文件夹图标一样的就是键”,类似于我的电脑中的文件夹。   键值(Value):“而在右侧窗格中一行行的选项,就称它为键值”,每个键值都有名称、类型、数据三项信...

Web在线操作Office文件 (转)

来自:http://www.cnblogs.com/xiyang1011/archive/2010/12/05/1897255.htmlVincent.Q Web在线操作Office文件 最近公司有个项目,需要直接在IE浏览器中操作Word文档,随后在网上搜了一些资料,感觉都不是很理想. 不过,最后还是找到了一个功能比较强的控件,是老外开发的控件,需要注...

egg.js jwt 几步实现加解密

1.安装 npm install --save egg-cors egg-jwt 2.配置 // config/config.default.jsconfig.jwt ={ secret: '123456', enable: true, //default is false match: '/jwt', //optional...