百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

透视宝:透过浏览器问诊真实用户体验

qiyuwang 2024-10-21 09:40 15 浏览 0 评论

关键字:透视、透过、浏览器、问诊、真实、

对于通过网站为用户提供服务的企业来说,通过浏览器准确感知终端用户的真实体验至关重要。比如电商网站,如果不能先于用户发现因商品价格无法加载,就会造成用户放弃购买,使业务蒙受损失;视频网站如果无法发现用户浏览器不能正确加载视频的问题,就无法阻止用户投入竞争对手的怀抱,无论是在电脑上还是在手机端,诸如此类的问题其实比比皆是。

云智慧透视宝提供面向浏览器的真实用户体验监控(RUM)与管理解决方案,通过浏览器页面端的用户行为与体验数据分析,帮助企业掌握页面在不同区域、浏览器下的性能表现,提供页面的JS、AJAX请求错误诊断及页面元素瀑布图,帮助前端开发人员深入定位每一个问题细节。

在解读透视宝浏览器监控之前有必要先说明一个概念:真实用户体验监控(RUM),因为浏览器监控最终目的就是去实现RUM:

一、真实用户体验监控(RUM):

1、什么是RUM?

RUM是一种被动的监测技术,记录一个网站或者客户机与服务器或者云应用之间的所有用户交互。

2、RUM的作用是什么?

监控一个网站或者应用的真实用户交互,是运营部门确定用户能否被快速和无错误服务的重要手段,如果没有,说明其业务流程是缺失的。

RUM实现监控所有时间、所有地点的所有用户使用应用程序的性能以及可用性情况,还会发现基础设施和分类用户操作,可以及时查看网络会话和整个服务的健康状况,以及移动端的用户体验。RUM可以追踪跨层的网络用户体验,捕获实时会话,看到用户在哪里点击,测量响应时间,并看到出现问题的页面等。而且,RUM可以轻松捕获和重放用户会话,然后创建反映真实用户行为的测试脚本。

扩展知识:

被动监测:在页面植入脚本或探针,当用户访问网页时,探针自动采集数据并回传数据库进行分析。

主动监测: 搭建分布式监控环境,模拟用户发起页面访问请求,主动采集性能数据并进行分析。

二、透视宝浏览器监控的作用

云智慧的透视宝作为一款应用性能管理产品,为什么要把浏览器监控作为最重要的功能之一呢?

在应用性能管理技术领域的“终端用户体验(EUE)”是监控实时应用程序的关键部分,同时也是我们端到端性能数据的重要组成部分,它所监控的数据对于分析用户正在执行的应用程序事务,和他们正在经历应用程序的响应状况是非常有意义的,所以透视宝设计开发了浏览器监控的功能模块。

透视宝浏览器性能监控是面向Web端真实用户体验的性能监控与管理,通过分析用户行为、用户分布、页面性能、错误堆栈等数据,帮助开发深入定位问题,为其优化解决方案提供分析的数据依据,还能帮助运营深度分析用户行为。

三、透视宝浏览器监控部署

1、首先通过透视宝官网免费注册账号:

2、注册成功后,可登录透视宝应用管理后台,在配置界面下载安装透视宝Smart Agent:

3、Smart Agent在发现应用之后会自动将一小段JS代码注入到被监测的页面,这段JS将引用透视宝线上RUM监控的JS文件,对当前终端用户所访问的WEB页面进行分析处理,获取页面性能、浏览器基本信息、行为分析等数据,然后通过发送http请求的方式将数据回传到透视宝的数据平台接口。几分钟之后,就可以在【透视宝→浏览器】中查看应用列表和数据了。(当然有些客户不希望在其应用中安装Smart Agent,只想单纯的使用透视宝的浏览器监控功能,对于这样的需求,我们添加了手动引入JS的功能)

四、浏览器监控分类及实现

1、页面性能监控:

通过使用HTML5提供的performance接口获取页面中各个阶段的精确时间,去分析计算出企业所关心的网站性能指标,并按照地域、网页、浏览器、运营商绘制成对应的响应时间分解图和响应时间变化趋势图等。

分析计算出指标:终端用户响应时间,首字节时间,服务器连接时间,响应可用时间,前端时间,文档准备时间, 文档下载时间,文档处理时间,页面渲染时间。

图表实例:

按地域分布响应时间趋势 (TOP5)

响应时间分解图:

浏览器对比(TOP5):

扩展知识:

HTML5的performance接口可获取到各个页面的精确时间,如下图所示:

下面是对各个时间变量的解释说明:

navigationStart:当前浏览器窗口的前一个网页关闭,发生unload事件时的Unix毫秒时间戳。如果没有前一个网页,则等于fetchStart属性。

unloadEventStart:如果前一个网页与当前网页属于同一个域名,则返回前一个网页的unload事件发生时的Unix毫秒时间戳。如果没有前一个网页,或者之前的网页跳转不是在同一个域名内,则返回值为0。

unloadEventEnd:如果前一个网页与当前网页属于同一个域名,则返回前一个网页unload事件的回调函数结束时的Unix毫秒时间戳。如果没有前一个网页,或者之前的网页跳转不是在同一个域名内,则返回值为0。

redirectStart:返回第一个HTTP跳转开始时的Unix毫秒时间戳。如果没有跳转,或者不是同一个域名内部的跳转,则返回值为0。

redirectEnd:返回最后一个HTTP跳转结束时(即跳转回应的最后一个字节接受完成时)的Unix毫秒时间戳。如果没有跳转,或者不是同一个域名内部的跳转,则返回值为0。

fetchStart:返回浏览器准备使用HTTP请求读取文档时的Unix毫秒时间戳。该事件在网页查询本地缓存之前发生。

domainLookupStart:返回域名查询开始时的Unix毫秒时间戳。如果使用持久连接,或者信息是从本地缓存获取的,则返回值等同于fetchStart属性的值。

domainLookupEnd:返回域名查询结束时的Unix毫秒时间戳。如果使用持久连接,或者信息是从本地缓存获取的,则返回值等同于fetchStart属性的值。

connectStart:返回HTTP请求开始向服务器发送时的Unix毫秒时间戳。如果使用持久连接(persistent connection),则返回值等同于fetchStart属性的值。

connectEnd:返回浏览器与服务器之间的连接建立时的Unix毫秒时间戳。如果建立的是持久连接,则返回值等同于fetchStart属性的值。连接建立指的是所有握手和认证过程全部结束。

secureConnectionStart:返回浏览器与服务器开始安全链接的握手时的Unix毫秒时间戳。如果当前网页不要求安全连接,则返回0。

requestStart:返回浏览器向服务器发出HTTP请求时(或开始读取本地缓存时)的Unix毫秒时间戳。

responseStart:返回浏览器从服务器收到(或从本地缓存读取)第一个字节时的Unix毫秒时间戳。

responseEnd:返回浏览器从服务器收到(或从本地缓存读取)最后一个字节时(如果在此之前HTTP连接已经关闭,则返回关闭时)的Unix毫秒时间戳。

domLoading:返回当前网页DOM结构开始解析时(即Document.readyState属性变为“loading”、相应的readystatechange事件触发时)的Unix毫秒时间戳。

domContentLoadedEventStart:返回当前网页DOMContentLoaded事件发生时(即DOM结构解析完毕、所有脚本开始运行时)的Unix毫秒时间戳。

domContentLoadedEventEnd:返回当前网页所有需要执行的脚本执行完成时的Unix毫秒时间戳。

domComplete:返回当前网页DOM结构生成时(即Document.readyState属性变为“complete”,以及相应的readystatechange事件发生时)的Unix毫秒时间戳。

loadEventStart:返回当前网页load事件的回调函数开始时的Unix毫秒时间戳。如果该事件还没有发生,返回0。

loadEventEnd:返回当前网页load事件的回调函数运行结束时的Unix毫秒时间戳。如果该事件还没有发生,返回0

2、JS错误信息:通过监听浏览器error事件,在代码层准确定位出错页面或脚本URL,引用页面URL,抓取浏览器错误基本信息指标,并分别按照地域、网页、浏览器、运营商绘制成对应的浏览器JS错误数(TOP5)以及浏览器JS错误率变化趋势等图表。

抓取指标:错误时间点,错误页面地址,错误类型,错误信息,错误位置等。

图表实例:

浏览器JS错误率变化趋势(TOP4):

3、客户使用设备以及浏览器信息监测:通过浏览器的window.navigator接口获取用户的平台信息,浏览器类型、版本、引擎,操作系统等信息,然后分析用户在各大浏览器以及系统的访问本页面的比例。

图表实例:

浏览器使用比例图:

操作系统使用比例图:

4、AJAX监控:

JavaScript调用ajax请求都是通过创建XMLHttpRequest对象来实现的(不包括ie7以下的版本),我们对此对象以及里面的open,send,readystatechange等方法进行了重写,用户在进行ajax请求的时候可以通过重写的方法做一些基本的过滤操作,进而达到既不影响用户代码又可以抓取ajax请求信息的目的。

在ajax监控中抓取了ajax请求URL,请求类型,请求数据大小,响应时间,响应数据大小,响应首字节时间,响应最后一个字节时间,响应状态,callback执行时间,请求超时时间等指标。

图表实例:

ajax响应时间图:

ajax错误类型图:

5、用户行为监测:通过监听用户的所有操作行为及其对应请求信息,比如:一个登录页面,可以记录下用户点击“登录”按钮对应发送ajax请求以及响应等信息,进而实现端到端的行为分析。

除了以上列举的几个功能,透视宝浏览器监控还有更多的功能,比如总访问用户,总页面数,总访问次数以及在各个分类下的吞吐率变化趋势等,如果您想了解网站和前端应用的RUM,那就来试试吧:http://cloudwise.mikecrm.com/f.php?t=K49gbV

相关推荐

基于Docker方式安装与部署Camunda流程引擎

1Camunda简介官网:https://docs.camunda.org/manual/7.19/installation/docker/Camunda是一个轻量级、开源且高度灵活的工作流和决策自...

宝塔Linux面板如何部署Java项目?(宝塔面板 linux)

通过宝塔面板部署Java还是很方便的,至少不需要自己输入tomcat之类的安装命令了。在部署java项目前,我还是先说下目前的系统环境,如果和我的系统环境不一样,导致部署不成功,那你可能需要去找其他资...

浪潮服务器如何用IPMI安装Linux系统

【注意事项】此处以浪潮服务器为例进行演示所需使用的软件:Chrome浏览器个人PC中需要预先安装java,推荐使用jdk-8u181-windows-x64.exe【操作步骤】1、在服务器的BIOS中...

Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)

由于项目需要存储历史业务数据,经过评估数据量会达到100亿以上,在原有mongodb集群和ES集群基础上,需要搭建Hbase集群进行调研,所以首先总结一下Hadoop集群的搭建过程。一、三个节点的集群...

Hadoop高可用集群搭建及API调用(hadoop高可用原理)

NameNodeHA背景在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNo...

使用Wordpress搭建一个属于自己的网站

现在开源的博客很多,但是考虑到wordpress对网站的seo做的很好,插件也多。并且全世界流量排名前1000万的网站有33.4%是用Wordpress搭建的!所以尝试用Wordpress搭建一个网站...

Centos 安装 Jenkins(centos 安装ssh)

1、Java安装查看系统是否已安装Javayumlistinstalled|grepjava...

Java教程:gitlab-使用入门(java中的git)

1导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作...

Dockerfile部署Java项目(docker部署java应用)

1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

Java路径-02-Java环境配置(java环境搭建及配置教程)

1Window环境配置1.1下载...

35.Centos中安装python和web.py框架

文章目录前言1.Centos7python:2.Centos8python:3.进行下载web.py框架然后应用:4.安装好之后进行验证:5.总结:前言...

《我的世界》服务器搭建(我的世界服务器如何搭建)

1.CentOS7环境1.1更改YUM源#下载YUM源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com...

CentOS 7 升级 GCC 版本(centos7.4升级7.5)

1.GCC工具介绍GCC编译器:...

Linux安装Nginx详细教程(linux安装配置nginx)

环境准备1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。命令:yuminstallgcc-c++显示完毕,表示安装完成:2.Nginx的http模块需要...

取消回复欢迎 发表评论: