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进 ...
随机推荐
- sqlalchemy - day4
query 此文算是自己的一个总结,不敢说对sqlalchemy有多精通,只能算是入门的总结,免得后面忘记了这些个基本的东西.数据库的增,删,改,查,前面已经介绍了session的增,删,改,现在来介 ...
- C,C++回文字符串判断(字符串指针的用法)
功能:输入一个字符串,判断是否为回文. 主要锻炼指针的用法. 1.C版 #include<stdio.h> int main() { ]; char a; ,flag=; while((a ...
- SSIS包配置动态配置数据库连接
动态连接数据库便于维护 用SSIS包配置实现 1.控制流页签 - 右键 - 包配置 2.配置xml文件 3.指定连接属性:ServerName.UserName.Password 测试: 1.配置错误 ...
- java reflect 初始学习 动态加载类
首先要理解Class类: 在java 的反射中,Class.forName("com.lilin.Office") 使用类的全名,这样获取,不仅仅表示了类的类类型,同时还代表着类的 ...
- Android:ViewPager实现屏幕轮转和使用PagerTabStrip
① ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类. ② ViewPager类需要一个PagerAdapter适配器类给它提供数据. ③ Vie ...
- hdu 4715 Difference Between Primes
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4715 Difference Between Primes Description All you kn ...
- hdu 3074 Multiply game
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3074 Minimum Inversion Number Description Tired of pl ...
- python学习笔记1
python3.3使用urllib2报错 no module named urllib2,原因是python3中将urllib2换成了request. 所以要使用import urllib.reque ...
- Kinect帮助文档翻译之三 多场景
在多个Sense中使用KinectManager 为了在多个场景下都能使用KinectManager这个组件,它必须被附在一个只生成一次.不会被销毁且在所有场景中都能访问的游戏物体上,显然把它附在Ma ...
- c++实例化对象
今天看到c++实例化对象,有点懵了.Activity_Log the_log (theLogPtr, Tree->GetBranch());这是那一段小代码,开始没看懂.java看习惯了总喜欢n ...