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

一.前言

APM 终端用户体验监控分析(上)从 APM 终端用户产品特性、使用建议、以及从真实用户体验模拟性能监控两方面入手给大家进行了简单的分享。

本文为下篇,将给大家介绍几种新的 APM 终端用户体验监控的方式。

二.基于网络的数据包捕获

基于网络的数据包捕获工具对执行应用无任何影响,且不要求改变代理或软件,因此无需进行大量的应用测试就可得出所需值。须在网络适当位置设计流量聚合层,且须使用矩阵或专业网络设备以对正在被发送到监控系统的流量进行更多粒状过滤。流量聚合网络不仅可用于 APM 使用情况,还可用于安全监控产品和网络性能监控工具,例如,OneAPM CloudTestNewRelicAPPdynamic 等厂商都是比较有代表性的网络性能监控工具的提供商。

这些基于网络的数据包捕获产品可测量响应时间、详细内容、网络产生的错误代码(如重传、DNS 解析问题、乱序数据包和 Nagle 延误)、浏览器产生的错误代码(如请求中断)以及应用产生的错误代码(如HTTP错误代码或者其他自定义错误信息),有些产品还能重建和回放用户实际看到的内容,如下两图所示:

从基础设施和应用这两个角度来看,这些工具对于应用支持团队来说都极具价值。他们还可帮助业务分析师了解使用情况和应用交付的质量,例如可以通过 API 监控来了解第三方交付的软件的质量问题。

第4张虽然数据包捕获技术确实增加了监控软件所捕获限制数据的安全风险,但这些技术还是得到了互助网体系和其他基础设施管理团队的充分理解和高度认可,部分流量聚合交换机允许屏蔽敏感数据。

随着应用复杂性的增强,通常需要结合公共或个人 Web 服务使用来自浏览器中的外部服务,并结合使用内容高速存取和内容分发网络,这就导致基于网络的方法缺乏可见性。一些提供基于网络的数据包捕获的供应商通过允许在服务器端设备上进行数据包捕获和分析来应对这一挑战,因此在一些基于云的基础设施上进行部署时就具有可见性,比如基础设施即服务(IaaS)、软件即服务(SaaS),但根据流量情况这可能会引起系统开销和可用资源超负荷。

目前国内外比较好的供应商如 OneAPMNewrelic等,他们可以网站从研发到上线的不同阶段提供相应的解决方案。

三.客户端变成服务器

随着基于网络和其他以网络为中心的应用程序交付方法特色功能的增多和使用的增加,客户端承担了比之前更多的处理负担,这就需要对这些端点进行监控。有些方法包括一个基于代理的方法,一个嵌入式代理或者一个注入式代理。一些供应商针对这些不同的方法有相应的解决方案,不过最常采用的是注射法,即自动在网页中插入 代码,这样可监控浏览器运行时的时间选择和执行情况。这些技术为基于网络的应用增添了可见性性能,且帮助我们了解到日益复杂的客户端代码执行(包括 、 HTML5 和 APP)。

人工实施这些 监控技术通常会使得对已改变的软件的测试过程变得复杂,并会增加质量保证的测试周期。APM 供应商也在不断提高代理的能力来监控应用服务器,在处理页面时插入这种代码,从而减轻开发和测试团队的负担。随着浏览器成为未来常用的应用交付平台,这些技术也日趋变得重要。

国内的产品现在为止也就 Browser Insight 这款产品比较靠谱,别的厂家的的类似工具总是感觉维度不是那么丰富。

四.浏览器标准的形成

随着当前浏览器大量使用手动计时方法,这就促使浏览器供应商建立一个定时应用程序编程接口(API)向软件开发人员开放使用。为此已形成多种标准:

Navigation Timing——该标准已广为微软的 Internet Explorer 9及以上版本、Mozilla Firefox 7 及以上版本、Google Chrome 6及以上版本以及微软的 Windows Phone浏览器接受,,上文说过的 Browser Insight 采用的就是这一标准。

Boomerang——该自由释放的 库采用了多种计时方法,若浏览器支持的话它还将采用导航计时规范。

■ 另外,谷歌已悄悄发布了一份谷歌 Chrome 浏览器支持的新协议。该协议属于 HTTP 的高性能版本 SPDY,目前谷歌服务以及其他互联网网站和 CDN 供应商均支持该协议。希望更多的采用这些标准以帮助我们更好的依赖 HTTP,因为应用交付的核心互联网协议在某些情况下是存在问题的。

寻找能增加浏览器的可见性性能的解决方案,反过来那些自己记录性能日志的开发人员和那些提供更多详细性能指标的 APM 供应商也可采用这些方案。

五.结语

第三方服务供应商不允许使用基于代理或基于网络的工具,这使得这些技术显得不足。不过谢天谢地,根据这些应用组件聚合从浏览器角度改善可见性这点是可行的。随着终端用户体验监控市场的变化,将会出现新的方法,能用来看到终端用户留在桌面浏览器上以及通过 Wi-Fi 或数据连接的平板电脑和移动系统上的活动和体验。对于网络和服务器工具,通过IT操作分析方法将有可能增强网络数据包捕获能力和分析能力。

以上方法将帮助我们拨开迷雾,让被乌云笼罩的可见性重见天日。

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

本文转自 OneAPM 官方博客

时间: 2024-12-10 16:51:56

APM终端用户体验监控分析(下)的相关文章

死锁的监控分析

死锁的监控分析 阅读目录(Content) 1 背景 1.1 报警情况 1.2 如何监控 2 分析 3 解决 回到顶部(go to top) 1 背景 1.1 报警情况 最近整理笔记,打算全部迁移到EVERNOTE.整理到锁这一部分,里边刚好有个自己记录下来的案例,重新整理分享下给大家. 某日中午,收到报警短信,DB死锁异常,单分钟死锁120个. 死锁的xml文件如下: 1 <deadlock-list> 2 <deadlock victim="process810b00cf8

JDK自带的监控分析工具JConsole

非常多开发人员认为自己懂Java编程.事实是大多数开发人员都仅仅领会到了Java平台的皮毛.所学也仅仅够应付工作. 作者将深度挖掘Java平台的核心功能.揭示一些鲜为人知的事实.帮助您解决最棘手的编程困难. 当应用程序性能受到损害时,大多数开发者都惊慌失措.这在情理之中. 跟踪Java应用程序瓶颈来源一直以来都是非常麻烦的,由于Java虚拟机有黑盒效应,并且Java平台分析工具一贯就有缺陷. 然而,随着Java5中JConsole的引入,一切都发生了改变. JConsole是一个内置Java性能

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

原文链接:http://blog.csdn.net/chendc201/article/details/22905511 在Java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的日志的时候,我们才知道原来代码中有死锁.撇开代码检查工具,我们先讨论一下利用VisualVM监控,分析我们的多线程的运行情况. AD:51CTO学院:IT精品课程在线看! 在Java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的日志的时候,我们才知道原来代码中有死锁.撇开代码检

LoadRunner如何监控Linux下的系统资源

前一段时间在研究LoadRunner过程中,在进行压力场景测试中通过LoadRunner来实时监控windows的系统资源,在前几节中我已经总结了相关过程,近段时间发现群里有朋友问如何监控Linux下的系统资源,所以我也就此问题搭建了一些的Linux环境,并在Linux下部署了一个web应用程序,来进行压力测试实例的讲解,在此就总结了如何设置LoadRuner来实时监控Linux系统资源. 关于LoadRunner监控Linux系统资源,大致分为以下步骤: 1.在监控Linux之前我想阐述的观点

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

性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Linux内存使用最常用的命令语法格式: free [options] 参数说明: -m:以M为单位查看内容使用情况(默认为kb) -b:以字节为单位查看内存使用情况 -s:可以在指定时间段内不间断监控内存使用情况 -k:以KB为单位显示内存使用情况 -g:以GB为单位显示内存使用情况 -o:不显示缓冲区

UAVStack JVM监控分析工具:图形化展示采集及分析监控数据

引言 作为AllInOne的智能化服务技术栈,UAVStack提供了非常全面的监控数据采样功能,同时支持数据监控与预警.近期,我们整合了原有的数据采集展示功能,新增JVM分析功能,推出了更易用的JVM监控分析工具. 熟悉JDK的开发者都知道,JDK本身提供了一套JVM分析工具,包括jinfo.jmap.jstack等.用户可以通过命令行轻松获取JVM内存堆栈信息.内存对象分配以及JVM启动基本参数信息.但这些工具需要在命令行环境中执行,且生产环境下则需要通过堡垒机转发. 开源社区一些不错的JVM

在linux中快速使用docker搭建ELK日志监控分析系统

在linux中使用docker安装ELK日志监控分析系统 网上的教程非常零散或者很多都已经过时了,我这里总结了相比于其他更新的日志系统搭建.并且使用docker镜像,更加简化了安装.在这开始之前先附上我的成功配置截图: linux的安装 linux的安装很简单,但是要使用docker必须安装centos7及以上,不然出现的各种兼容性问题自行百度解决.这里有两种方法: 如果是学生可以购买阿里或者腾讯的linux服务器,简单方便,每个月只要10元钱,其实挺划算的.这是阿里linux的购买地址:htt

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

好多年没发博,最近有时间整理些东西,分享给大家. 所有内容都在github项目liuzhibin-cn/my-demo中,基于SpringBoot,演示Dubbo微服务 + Mycat, Sharding-Proxy分库分表 + Seata分布式事务管理 + ZipKin, SkyWalking, PinPoint性能分析链路跟踪APM工具,有详细文档,可以快速运行 演示项目架构 运行演示项目 package.sh为打包脚本: sh package.sh:最简单运行方式,使用单个MySQL数据库

产品经理之竞品分析下

竞品分析下 成果目的与竞品选取 收集高相关竞品动态报 关注行业新趋势/新技术 引发创新思考与讨论 2.分类分级的重要性 1.1分类让动态更好用 基于用户体验分层分类:战略层.范围层.框架层.结构层.表现层基于用户体验旅程分类:导购.加购支付.物流.客服.售后基于变更类型分类:功能迭代.体验优化.投融资.运营活动 1.2分级让动态更可用: 重要需关注: 直接对手重大调整 国家政策/行业规定出台 互联网巨头的本行业动作 核心优势被挑战 3.以小见大,洞察趋势 4.成果形式与特点 1. 以专项调研报告