如何进行网站的真实用户监控(RUM)?
RUM的工作名副其实:它不雅察的是网站的真实访客,记载访客打开页面的速度,然后生成报表。
从这点来看,RUM会告知你体系是否出问题了,因为你可以经由过程RUM发明问题以及速度变慢的情形,这些情形你没有进行测试,从而也就不知道是否存在。
何时应用RUM
RUM对象生成两种报表,每种都可以赞助你测量机能及诊断问题。
单个访客报表
有了如许的报表,就像每个访客都有Firebug一样,你可以对用户的拜访进行回放,复查每个页面和每个对象,也可以针对单个毛病生成报警(例如,“假如用户获得了一个HTP500毛病,则给我发邮件”)。
聚集报表
这些报表针对所有访客显示产生了什么一哪些页面最慢、哪些对象涌现的毛病最多等。可以基于聚合数据和时光段生成报警(例如,“假如5分分钟之内平均页面延迟时光间跨越5秒钟,则发送一个SNMP陷阱”)。
常见的RUM用例包含
● 复盘问题会话,以诊断网站的技巧问题。
● 对网站真实访客生成办事程度报表,特殊是在运行一个软件作为办事(Sas)的体系时。辨认出那些可能须要更多规范监控的部门。
● 对于无法应用综合方法进行测量的部门,如付款页面等,测测量其健康状态
碰到问题即时报警,而不是采取距离方法,到点儿才报。
RUM的局限
固然综合对象都年夜同小异,但客户端的RUM对象,和办事器端的比拟,是有很年夜差别的。前者依附于AAX剧本或者嵌入的署理代码(agentcode),在终端用户拜访网站时,采集他们的信息;后者应用办事器日记、负载平衡器或者收集窃听器从数据中间收集访客信息。
客户端RUM在阅读器中不雅察用户体验,所以可以或许测量像客户端衬着等的延迟。惋惜的是,因为只有在页面胜利加载而且在阅读器上运行的时刻,客户端RUM能力够加载,所以就无法检测导致其自身无法加载如许的毛病,并且也可能与某些客户端不兼容。更进一步说,因为RUM是在阅读器的沙箱里运行的,所以也就无法看到更为低层的数据,像包丧失情形,也难以估计用户拜访第一个页面时的主机延迟。
办事器端的RUM的问题正相反。因为自力于阅读器,所以能看到产生的任何工作的具体情形一一甚至是掉败的TCP衔接次数,然而却看不到阅读器中产生的情形。或许更主要的是,因为办事器端的RUM须要拜访收集与日记,以及某些情形下的各个物理收集,所以对于托管或基于云盘算的情况,就无法安排了。很多贸易化的RUM解决计划联合了客户端及办事器端的采集方法来解决这个问题。
设置装备摆设RUM
有两个根本步调来设置装备摆设RUM对象。起首,练习对象以懂得网站的流量模式,然后告知对象监督哪些主要的内容。
依照界说,一个RUM对象应当能捕提所有进出办事器的流量。对对象进行练习是需要的,因为每个网站都是分歧的。对对象进行练习涉及到下面的步调。
1.剔除不须要的流量。
某些流量你可能不须要。像网站机械人(bots)、其他的监控对象、收集办事挪用以及防火墙之内的流量,所有这些都邑让你歪曲终端用户的体验。
2.告知体系若何追踪单个用户。
所有网站都邑应用某种器械来辨认单个访客,不管是会话cookie照样URL参数,甚至是IP地址。但在某些RUM实现中一一特殊是那些应用客户端剧本的一这些是不须要的,因为剧本实例运行在每个访客的阅读器中。
3.告知体系若何组装页面。
知道一个页面在哪里停止以及另一个页面在哪里开端,是须要技能的。有些页面在加载今后可能还会有异步通讯(如GoogleSuggest,用户在搜刮框中输入内容时,GoogleSuggest会基于这些内容显示建议)。RUM对象须要知道什么器械构成了页面的开端与停止,这对于合理地计时以及盘算页面数都很主要
4.辨认毛病。
固然每个网站都有一些根本的毛病类型(如HTTP500),但也会有一些定制的页面,看起来跟正常页面一样,但倒是失足页面。
一旦对象懂得了如何才算是一次拜访,以及若何测量延迟,你就可以告知它要监督些什么。多半RUM对象在开端时都邑有默认的参数:页面、用户、城市以及办事器都是用来切割数据的好办法,都邑向你显示哪些最慢,或者哪些失足最多。
因为RUM对象要处置年夜量信息,所以往往只向你显示高条理的数据,除非你特殊请求做钻取,例如,进入到网站扶植的方才宣布的那部门,或者显示一个特定的高价值客户。一般来说,每个数据区段都可以用来生成申报,以及发生报警或邮件通知。