一.前言

理解用户体验是从终端用户角度了解应用交付质量的关键,这是考量业务健康运转的潜在因素。捕获此类数据的方法各种各样,具体的实现途径由应用、基础设施架构以及管理者和管理过程决定。

二.终端用户监控主要产品特性

  • 基于网络的数据包捕获技术和各种端点检测方法一样,均为有效的监测技术,可以用来捕获用户体验。现在国内的拨测技术就是基于这个技术,通过在全国各地的
    IDC 点来拨测被监控网站,测试其可用性和丢包率等参数,该产品国内外比较有代表性有:OneAPM
    CloudTest
    NewRelicAPPdynamic

这类产品主要通过监控网站、CDN、DNS 等的可用性、错误率等指标来确认网站的正常运行,下图是一款拨测产品的主界面视图,仅供大家参考

  • 基于网络数据包捕获的有效部署途径会因关键位置聚集网络流量的能力而变化。
  • 用基于标准语言写的富客户端应用需要进行额外监测。随着浏览器和其他端点监控能力的增强,客户端监控的有效性将增强,同时基于网络的数据包捕获技术将受到限制。这个时候就需要基于真实用户体验的监控软件进行补充了,这种软件就是以页面插入
    js 代码的方式来实时抓取访问页面的用户的时间节点,来计算各种响应时间。

这类型的产品使用往往需要一些工作量,需要向页面插入代码,没有上面说过的 Cloud Test 这类产品这么方便,但是看在确实能看到真实的用户体验,这点儿时间花的还是值得的,国内外该类产品里面比较成熟的有:Browser InsightDynatraceNewrelic

该类产品一般都是通过浏览器端的各个维度来评价终端用户的体验的,维度比较多,但是产品上手比较困难,一般需要有相当前端经验的人员才能快速适用,下图是上面说过的Browser Insight产品的纵览界面,供大家参考:

三.终端 APM 产品使用建议

  • 根据当前或计划的基础设施变更,以及采用的基于云或分布式应用,来选择终端用户体验监控产品针对这些情况监控端点。
  • 仅当现有网络性能监控或应用性能监控(APM)的投资不能满足新要求时才投资新工具,而且,最好选择一家厂商的产品,这样才不会因为厂商的差异性导致使用的不便利,而且,同一家提供商的产品也更有互补性
  • 多调查那些提供多种监控方法和使用新兴端点监控功能的供应商,这样能确保你的产品的稳定性以及可靠性。现在国内外 APM
    产品提供商比较有代表性的有:OneAPMNewRelicAPPdynamicDynatrace 等。

四.模拟+真实

近年来,实施综合监控一直备受吹捧,鉴于其可通过网络应用来了解用户体验,而且未发现中断。循环检测和进行额外监控多年来已是 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 终端用户体验监控分析(上)的更多相关文章

  1. APM终端用户体验监控分析(下)

    一.前言 [APM 终端用户体验监控分析(上)][1]从 APM 终端用户产品特性.使用建议.以及从[真实用户体验][2]和[模拟性能监控][3]两方面入手给大家进行了简单的分享. 本文为下篇,将给大 ...

  2. 微服务、分库分表、分布式事务管理、APM链路跟踪性能分析演示项目

    好多年没发博,最近有时间整理些东西,分享给大家. 所有内容都在github项目liuzhibin-cn/my-demo中,基于SpringBoot,演示Dubbo微服务 + Mycat, Shardi ...

  3. nagios-解决监控页面上的乱码

    1. 前景 在nagios的监控页面上发现返回来的信息为乱码,如下图所示: 查看相关日志,发现正常显示汉字,如下: 2. 解决方法(以下两个步骤缺一不可) 主要原因分析如下: 在nagios服务器上发 ...

  4. JDK自带的监控分析工具JConsole

    非常多开发人员认为自己懂Java编程.事实是大多数开发人员都仅仅领会到了Java平台的皮毛.所学也仅仅够应付工作. 作者将深度挖掘Java平台的核心功能.揭示一些鲜为人知的事实.帮助您解决最棘手的编程 ...

  5. (转载)Java多线程的监控分析工具(VisualVM)

    原文链接:http://blog.csdn.net/chendc201/article/details/22905511 在Java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的 ...

  6. Linux操作系统监控分析

    性能分析点:1. 负载机2.网络传输3.硬件4.应用程序线程池5.数据库连接池6.代码业务逻辑7.数据库sql执行时间8.jvm(GC) 操作系统硬件:cpu:计算.逻辑处理:CPU的颗粒数越多,CP ...

  7. Java虚拟机性能管理神器 - VisualVM(1) 简介 - JVM轻量级监控分析神器

    目录(?)[-] 一VisualVM是什么 二如何获取VisualVM 三获取那个版本 四VisualVM能做什么 显示JAVA应用程序配置和运行时环境 显示本地和远程JAVA应用程序运行状态 监控应 ...

  8. Linux性能监控分析命令(五)—free命令介绍

    性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Lin ...

  9. Linux 监控分析

    一.硬件基础 Cpu   逻辑的处理.计算.判断 现代分时多任务操作系统对 CPU 都是分时间片使用的:比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms, 再又是A进程占10ms,B进 ...

随机推荐

  1. Douglas Crockford: entityify & deentityify

    大神之字符与字符实体的相互转换方法 // & to & if (!String.prototype.entityify) { String.prototype.entityify = ...

  2. 无法在 Android 模拟器上访问本机的Web服务的解决办法

    我在本地跑了一个 Tomcat ,我想在 Android 模拟器中直接通过下面的 url 地址访问 Tomcat 上的服务 http://192.168.0.20:8080/getweather 但是 ...

  3. Tutorial: Analyzing sales data from Excel and an OData feed

    With Power BI Desktop, you can connect to all sorts of different data sources, then combine and shap ...

  4. iOS7 隐藏状态栏 hide statusBar

    1.调用 [self setNeedsStatusBarAppearanceUpdate]; 2.重载以下函数 - (BOOL)prefersStatusBarHidden{ return _hide ...

  5. 单点登录 关于Cookie跨域的问题

    public void ProcessRequest(HttpContext context) { HttpCookie cookie = new HttpCookie("name" ...

  6. 011--VS2013 C++ 斜角地图贴图

    准备好的图片 //全局变量HDC mdc;HBITMAP fullmap;//声明位图对象,在初始化函数中完成的斜角地图会保存在这个位图中const int rows = 10, cols = 10; ...

  7. Linux 删除mysql数据库失败的解决方法

    使用命令:drop database xxx:删除本数据库时却删除失败,系统提示出现了错误,错误代码为: ERROR 1010 (HY000): Error dropping database(can ...

  8. java 参数化类型

    package com.gxf.collection; import java.util.LinkedList; public class TestForT<T> { private Li ...

  9. Android -- Home按键

    游戏中常常需要监听android HOME键,当HOME键下压时,往往需要做一些状态保存,音效停止等操作,那么如何做,才能监听到HOME键呢?我们知道HOME是系统键,app中无法通过onKey这些函 ...

  10. 20145103《java程序设计》第4周学习总结

    20145103 <Java程序设计>第4周学习总结 教材学习内容总结 继承 继承共同行为 ·继承基本上就是避免多个类间重复定义共同行为. ·继承的三个好处:减少代码冗余:维护变得简单:扩 ...