模拟监控VS真实用户监控!应用性能监控工具大PK

本文涉及的产品
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
简介:

任何应用监控技术的重中之重通常是针对终端用户的基础架构或组件进行监控。智能工具是测量用户体验的理想工具,因为它们理解应用的运行情况,会自动基准化性能表现,在几乎不产生干扰的情况下解码并建立应用子组件间的关系。

其实,在测量用户体验时,有两种不同的性能监控方法:

  • 模拟监控——供应商提供远程(通常是全球的)基础设施,可定期访问网站并记录每次运行的性能数据。测量的流量并非实际用户所产生的,而是用于收集页面性能时生成的。
  • 真实用户监控——供应商提供嵌入到每个页面的代理(Javascript 脚本),报告当前页面的每个请求的加载数据。顾名思义,这种监控技术主要观测实际用户的交互。
    模拟监控VS真实用户监控!应用性能监控工具大PK

由于这两种方式事实上是互补的,所以没办法简单的说哪种更好。Eric Shepherd (Gilt 的前端工程师)归纳了这两种技术所具备的优势:

“真实用户监控和模拟监控都能从不同角度对应用性能进行监控,且具有不同的功能和针对性。真实用户监控帮助我们理解应用的长期趋势,而模拟监控可以诊断出并解决短期的性能问题。”

在此,笔者对两种监控方式做了一个对比,下面向您介绍两种监控各自的特点:

模拟监控

本质上,有了模拟监控(也称为主动监控),用户可以指定以下监控项目:

  • 监控哪一个 URL(网站或是服务器)。
  • 监控的类型(HTTP, Ping, API 还是其他)。
  • 监控此 URL 的频率。
  • 如果出了问题,向谁发送告警。
  • 告警的方式。

这是模拟监控测量网站性能的方式(图片来源:Cloud Test)。

模拟监控解决方案在告警网站可用性方面颇有成效,你可以在访客到达网站之前了解网站出现的问题。如果我们的系统检测出网站宕机,你可以使用各种各样的工具,分析出故障的组件,尽快修复故障,使网站平稳运行。

以下是模拟监控的几个特点:

1.在控制的环境下进行监控
模拟监控允许用户通过一系列的控制变量(地理位置、网络设备、浏览器、高速缓存或非高速缓存),详细地对网站或应用性能进行监控。同时,它还能帮助用户屏蔽掉真实用户监控产生的海量噪音。其结果是用户可以及时地发现延迟和宕机时间,从而科学地诊断并隔离性能问题的根源。

2.了解第三方的性能
与真实用户监控不同的是,模拟监控工具可以呈现供应商生成的网站访问的详细图表,这些图表显示了整页的资源加载时间,允许用户将每一毫秒的时间对应上相关的网页内容。例如,用户可以深入了解到广告供应商切换、内容交付或采用新营销分析插件对性能的影响。

3.基准测试
启动模拟监控不需要任何安装或代码嵌入。随后,用户可以利用模拟工具有效地监控竞争和一段时间内针对关键竞争者的有效基准性能。

4.开发的每个阶段均可测试
模拟监控可在预生产阶段对网站和 web 应用进行测试。预生产测试结果可用于性能基准,并设置应用运行的警报阈值。

5.7×24小时监控
如果非工作时间或其他低流量周期出现问题,模拟监控可在对用户、收益和品牌效应产生负面影响之前,帮助你快速识别、隔离并解决问题,将损失降到最低。

6.跨地域分析基线和性能趋势
结合模拟监控可以设置基线测试,以还原终端用户访问应用程序的方式。这些基线测试可以在测试多个浏览器和设备访问应用的同时,监测关键事务和地理位置等信息。

真实用户监控

模拟监控通过数据中心的服务器连接你的网站,而真实用户监控却能获取真实用户的访问数据。因此,后者也被称为被动监控。

使用真实用户监控时,你需要指定监控的网站,并将一小段代码插入该网站页面的 HTML 内。这些步骤都很简单快速,配置完毕之后,我们就会开始收集网站的用户数据。这些数据来自网站的每一个页面,而模拟监控只能收集指定的 URL 的数据。

尽管模拟监控优点很多,但有些事情它还是无法告知你。这也是为什么要使用真实用户监控的原因。真实用户监控不仅能提供有关网站性能的更详细数据,还能展示用户从打开网站开始的真实体验。这包括连接类型、浏览器、用户使用的访问设备、他们的地理位置等等。你能看到每个访客的聚合数据,而不是有限的样本数据。

换句话说,模拟监控告诉你访客可能的网站体验,而真实用户监控让你了解真实的用户体验。
模拟监控VS真实用户监控!应用性能监控工具大PK
上图展示了真实用户监控服务展现网站性能的几个指标——AjAX性能、页面性能、Apdex等(图片来源:Browser Insight)。真实用户监控会加载整个网站(HTML, CSS,脚本,图片等),而不单单是 HTML。这使你得到更多的网站性能数据,对用户体验的了解也更为深入。

以下是你使用真实用户监控之后,可以了解到的信息:

  • 实时访问:单个页面的加载情况。
  • 性能趋势:加载时间的变化趋势,选定时间范围,了解这段时间内的加载时长变化。
  • 地域表现:来自不同国家的用户在访问网站时的体验差异。你可能想专门改善某几个国家的用户的访问体验。
  • 移动 VS. 桌面:查看通过移动端和桌面端进行访问的用户比例,以及各自的访问体验。
  • 性能长尾:不仅查看最快的加载时间,也能查看那些遭遇性能缓慢的用户情况。
  • 加载状态:详细展示页面的加载情况,从用户点击链接到加载完毕,时间都耗费在哪些步骤。
  • 用户满意度:访客是否满意或沮丧?列明哪些性能表现可归为令人满意、可容忍以及令人沮丧。让你快速了解用户总体的满意度。

有了这些真实用户数据,一旦网站出现性能问题,你可以准确找到问题源头。在这种情况下,真实用户监控还可做为模拟监控的预兆,指出应当深入调查的组件。

总而言之,真实用户监控是衡量网站性能的最佳手段,而模拟监控是检查网站是否可用的最佳方法。同时使用这两种工具,意味着你的网站能为用户提供最优的访问体验。

Cloud Test 是基于云技术的实时监控系统,能够帮大家实时监控网站性能,监控CDN、DNS、API等第三方服务提供商的可用性,实现应用性能及时监测及时报警。想阅读更多技术文章,请访问 OneAPM 官方技术博客
本文转自 OneAPM 官方博客

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
3月前
|
监控 Kubernetes Go
全链路追踪 & 性能监控,GO 应用可观测全面升级
当前,大多数面向 Golang 应用的监控能力主要是通过 SDK 方式接入,需要开放人员手动进行埋点,会存在一定问题。对此,可观测 Go Agent 应运而生。本文介绍的阿里云可观测 Go Agent 方案,能通过无侵入的方式实现应用监控能力。
108583 25
|
5月前
|
SQL 运维 监控
关系型数据库性能监控工具
【5月更文挑战第21天】
96 2
|
2月前
|
监控 Java
(翻译)性能监控之百分位数监控
【8月更文挑战第10天】(翻译)性能监控之百分位数监控
43 1
(翻译)性能监控之百分位数监控
|
2月前
|
Kubernetes 监控 Cloud Native
"解锁K8s新姿势!Cobra+Client-go强强联手,打造你的专属K8s监控神器,让资源优化与性能监控尽在掌握!"
【8月更文挑战第14天】在云原生领域,Kubernetes以出色的扩展性和定制化能力引领潮流。面对独特需求,自定义插件成为必要。本文通过Cobra与Client-go两大利器,打造一款监测特定标签Pods资源使用的K8s插件。Cobra简化CLI开发,Client-go则负责与K8s API交互。从初始化项目到实现查询逻辑,一步步引导你构建个性化工具,开启K8s集群智能化管理之旅。
46 2
|
2月前
|
监控 Java 开发者
揭秘Struts 2性能监控:选对工具与方法,让你的应用跑得更快,赢在起跑线上!
【8月更文挑战第31天】在企业级应用开发中,性能监控对系统的稳定运行至关重要。针对流行的Java EE框架Struts 2,本文探讨了性能监控的工具与方法,包括商用的JProfiler、免费的VisualVM以及Struts 2自带的性能监控插件。通过示例代码展示了如何在实际项目中实施这些监控手段,帮助开发者发现和解决性能瓶颈,确保应用在高并发、高负载环境下稳定运行。选择合适的监控工具需综合考虑项目需求、成本、易用性和可扩展性等因素。
37 0
|
2月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`<s:checkbox>`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
80 0
|
2月前
|
SQL 监控 关系型数据库
SQL性能监控与调优工具的神奇之处:如何用最佳实践选择最适合你的那一个,让你的数据库飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库性能监控与调优对应用稳定性至关重要。本文对比了数据库内置工具、第三方工具及云服务工具等几种常用SQL性能监控与调优工具,并通过示例代码展示了如何利用MySQL的EXPLAIN功能分析查询性能。选择最适合的工具需综合考虑功能需求、数据库类型及成本预算等因素。遵循了解工具功能、试用工具及定期维护工具等最佳实践,可帮助开发者更高效地管理和优化数据库性能,迎接未来软件开发中的挑战与机遇。
47 0
|
2月前
|
Prometheus 监控 Cloud Native
性能监控之 Golang 应用接入 Prometheus 监控
【8月更文挑战第4天】性能监控之 Golang 应用接入 Prometheus 监控
175 0
性能监控之 Golang 应用接入 Prometheus 监控
|
3月前
|
运维 监控 Java
(十)JVM成神路之线上故障排查、性能监控工具分析及各线上问题排错实战
经过前述九章的JVM知识学习后,咱们对于JVM的整体知识体系已经有了全面的认知。但前面的章节中,更多的是停留在理论上进行阐述,而本章节中则更多的会分析JVM的实战操作。
|
2月前
|
存储 监控 Ubuntu
完全交互式!易于使用的 Linux 性能监控工具
完全交互式!易于使用的 Linux 性能监控工具