APM 终端用户体验监控分析(上)
一.前言
理解用户体验是从终端用户角度了解应用交付质量的关键,这是考量业务健康运转的潜在因素。捕获此类数据的方法各种各样,具体的实现途径由应用、基础设施架构以及管理者和管理过程决定。
二.终端用户监控主要产品特性
- 基于网络的数据包捕获技术和各种端点检测方法一样,均为有效的监测技术,可以用来捕获用户体验。现在国内的拨测技术就是基于这个技术,通过在全国各地的
IDC 点来拨测被监控网站,测试其可用性和丢包率等参数,该产品国内外比较有代表性有:OneAPM
CloudTest、NewRelic、APPdynamic
这类产品主要通过监控网站、CDN、DNS 等的可用性、错误率等指标来确认网站的正常运行,下图是一款拨测产品的主界面视图,仅供大家参考
- 基于网络数据包捕获的有效部署途径会因关键位置聚集网络流量的能力而变化。
- 用基于标准语言写的富客户端应用需要进行额外监测。随着浏览器和其他端点监控能力的增强,客户端监控的有效性将增强,同时基于网络的数据包捕获技术将受到限制。这个时候就需要基于真实用户体验的监控软件进行补充了,这种软件就是以页面插入
js 代码的方式来实时抓取访问页面的用户的时间节点,来计算各种响应时间。
这类型的产品使用往往需要一些工作量,需要向页面插入代码,没有上面说过的 Cloud Test 这类产品这么方便,但是看在确实能看到真实的用户体验,这点儿时间花的还是值得的,国内外该类产品里面比较成熟的有:Browser Insight、Dynatrace、Newrelic 等
该类产品一般都是通过浏览器端的各个维度来评价终端用户的体验的,维度比较多,但是产品上手比较困难,一般需要有相当前端经验的人员才能快速适用,下图是上面说过的Browser Insight产品的纵览界面,供大家参考:
三.终端 APM 产品使用建议
- 根据当前或计划的基础设施变更,以及采用的基于云或分布式应用,来选择终端用户体验监控产品针对这些情况监控端点。
- 仅当现有网络性能监控或应用性能监控(APM)的投资不能满足新要求时才投资新工具,而且,最好选择一家厂商的产品,这样才不会因为厂商的差异性导致使用的不便利,而且,同一家提供商的产品也更有互补性
- 多调查那些提供多种监控方法和使用新兴端点监控功能的供应商,这样能确保你的产品的稳定性以及可靠性。现在国内外 APM
产品提供商比较有代表性的有:OneAPM、NewRelic、APPdynamic、Dynatrace 等。
四.模拟+真实
近年来,实施综合监控一直备受吹捧,鉴于其可通过网络应用来了解用户体验,而且未发现中断。循环检测和进行额外监控多年来已是 IT 操作中存在的一个事实。解决这种递归循环的方法即引入终端用户体验监控,通过监控穿越网络的数据来实现。该解决方法具有可见性,能进行检测,而之前通过模拟方法则无法实现。随着 CDNs的发展,基于云的服务和蜂窝连接会引起 datacenter-bound 技术在终端用户体验可见性方面存在漏洞。
在 2008 年发布的 Episodes 论文中,一种基于浏览器事件的测量方法为问世,随后即被 APM 供应商采用以满足终端用户体验监控需求。在这两种选项中,Gartner 看到企业根据不同业务类型来选择解决方案,甚至在单个企业中会采用两种解决方法,这也就是我们上文提到过的「模拟性能监控+真实用户体验监控」
使用更先进的监控工具之前,已通过元件监控产品检查具体基础架构组件发现了问题。市场的发展允许实施脚本化的事务处理,使用应用来「模拟」个体。通过该技术形成一个循环,这样 IT 运营团队在用户上传问题后就可对其进行监控。不过通过这些方法无法对个体使用应用时所发生的每个动作进行全方位的监控。这种可见漏洞促使这两种常用方法逐步完善,以通过应用来监控实际的用户交互。
五.总结
本文从现有的终端用户 APM 产品入手,向大家介绍了比较常见的几款 APM 产品,并分析了对于终端用户体验监控的使用建议等。在本系列文章的下篇中,会重点介绍基于网络数据包捕获方面的的产品以及浏览器标准对于终端用户体验监控的巨大补充。
Cloud Test 是基于云技术的实时监控系统,能够帮大家实时监控网站性能,监控 CDN、DNS、API 、事务监控等第三方服务提供商的可用性,实现应用性能及时监测及时报警。
想阅读更多技术文章,请访问OneAPM 官方技术博客。
本文编译自 Gartner 研究报告《End-User Experience Monitoring in APM: Past, Present and Future》
APM 终端用户体验监控分析(上)的更多相关文章
- APM终端用户体验监控分析(下)
一.前言 [APM 终端用户体验监控分析(上)][1]从 APM 终端用户产品特性.使用建议.以及从[真实用户体验][2]和[模拟性能监控][3]两方面入手给大家进行了简单的分享. 本文为下篇,将给大 ...
- 微服务、分库分表、分布式事务管理、APM链路跟踪性能分析演示项目
好多年没发博,最近有时间整理些东西,分享给大家. 所有内容都在github项目liuzhibin-cn/my-demo中,基于SpringBoot,演示Dubbo微服务 + Mycat, Shardi ...
- nagios-解决监控页面上的乱码
1. 前景 在nagios的监控页面上发现返回来的信息为乱码,如下图所示: 查看相关日志,发现正常显示汉字,如下: 2. 解决方法(以下两个步骤缺一不可) 主要原因分析如下: 在nagios服务器上发 ...
- JDK自带的监控分析工具JConsole
非常多开发人员认为自己懂Java编程.事实是大多数开发人员都仅仅领会到了Java平台的皮毛.所学也仅仅够应付工作. 作者将深度挖掘Java平台的核心功能.揭示一些鲜为人知的事实.帮助您解决最棘手的编程 ...
- (转载)Java多线程的监控分析工具(VisualVM)
原文链接:http://blog.csdn.net/chendc201/article/details/22905511 在Java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的 ...
- Linux操作系统监控分析
性能分析点:1. 负载机2.网络传输3.硬件4.应用程序线程池5.数据库连接池6.代码业务逻辑7.数据库sql执行时间8.jvm(GC) 操作系统硬件:cpu:计算.逻辑处理:CPU的颗粒数越多,CP ...
- Java虚拟机性能管理神器 - VisualVM(1) 简介 - JVM轻量级监控分析神器
目录(?)[-] 一VisualVM是什么 二如何获取VisualVM 三获取那个版本 四VisualVM能做什么 显示JAVA应用程序配置和运行时环境 显示本地和远程JAVA应用程序运行状态 监控应 ...
- Linux性能监控分析命令(五)—free命令介绍
性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Lin ...
- Linux 监控分析
一.硬件基础 Cpu 逻辑的处理.计算.判断 现代分时多任务操作系统对 CPU 都是分时间片使用的:比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms, 再又是A进程占10ms,B进 ...
随机推荐
- Python学习教程(learning Python)--3.3.3 Python逻辑关系表达式
在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...
- String类详解,StringBuffer
先说一下String类的equals()方法. 下面我们先看一段代码: 这段代码输出的结果为: ture true -------------- false 咋看之下貌似Object类比较特别,那么我 ...
- mysql外键设置(待测试)
外键的定义语法:[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...) REFERENCES tbl_name (index_col ...
- Azure SQL 数据库与新的数据库吞吐量单位DTU
azure中新的数据库吞吐量单位 (Database Throughput Unit, DTU) 是什么,以及用户如何通过它来了解新服务级别可以提供的服务内容.DTU 对于提供预测性更强的性能体验起着 ...
- 用js进行日期的加减
如题,开始查了查js的使用文档,但没发现可以直接用的函数,于是就想自己写函数来着,这就要涉及到每个月天数的判断,如果是2月份的话,还要涉及到闰年的判断,虽然不复杂但我想js应该不会这么低级,于是查了下 ...
- [转]linux时间同步
转自:http://www.jotop.com/2012/vpsinfo_0525/439.html 美国的vps大多都是国外的时间,让我们的程序总是不适应.那么如何调整linux的时间为北京时间?修 ...
- 数据持久化-Plist文件写入
数据持久化,常见4种:归档,plist文件,sqlite,coreData.今天复习的是plist文件读写. // // ViewController.m // Test_Plist // // Cr ...
- C# SQL增删查改
DBHelper: /// <summary> /// 执行查询 /// </summary> /// <param name="sql">有效 ...
- params关键字
每个C#函数都允许有个参数带params关键字,在调用的时候可以不给他传值,也可以给他传值,还可以给他传多个值 注意事项: ·一个函数中只能一个参数带params关键字:·带params关键字的参数必 ...
- QT 十六进制字符串转化为十六进制编码
/*************************************************Function: hexStringtoByteArray()Description: 十六进制字 ...