從這點(diǎn)來(lái)看,RUM會(huì)告訴你系統(tǒng)是否出問(wèn)題了,因?yàn)槟憧梢酝ㄟ^(guò)RUM發(fā)現(xiàn)問(wèn)題以及速度變慢的情況,這些情況你沒(méi)有進(jìn)行測(cè)試,從而也就不知道是否存在。
何時(shí)使用RUM
RUM工具生成兩種報(bào)表,每種都可以幫助你測(cè)量性能及診斷問(wèn)題。
單個(gè)訪客報(bào)表
有了這樣的報(bào)表,就像每個(gè)訪客都有 Firebug一樣,你可以對(duì)用戶的訪問(wèn)進(jìn)行回放,復(fù)查每個(gè)頁(yè)面和每個(gè)對(duì)象,也可以針對(duì)單個(gè)錯(cuò)誤生成報(bào)警(例如,“假如用戶得到了一個(gè)HTP500錯(cuò)誤,則給我發(fā)郵件”)。
集合報(bào)表
這些報(bào)表針對(duì)所有訪客顯示發(fā)生了什么一哪些頁(yè)面最慢、哪些對(duì)象出現(xiàn)的錯(cuò)誤最多等??梢曰诰酆蠑?shù)據(jù)和時(shí)間段生成報(bào)警(例如,“如果5分分鐘之內(nèi)平均頁(yè)面延遲時(shí)間間超過(guò)5秒鐘,則發(fā)送一個(gè)SNMP陷阱”)。
常見的RUM用例包括
● 復(fù)查問(wèn)題會(huì)話,以診斷網(wǎng)站的技術(shù)問(wèn)題。
● 對(duì)網(wǎng)站真實(shí)訪客生成服務(wù)水平報(bào)表,特別是在運(yùn)行一個(gè)軟件作為服務(wù)(Sas)的系統(tǒng)時(shí)。識(shí)別出那些可能需要更多規(guī)范監(jiān)控的部分。
● 對(duì)于無(wú)法使用綜合方式進(jìn)行測(cè)量的部分,如付款頁(yè)面等,測(cè)測(cè)量其健康狀況
遇到問(wèn)題即時(shí)報(bào)警,而不是采用間隔方式,到點(diǎn)兒才報(bào)。
RUM的局限
雖然綜合工具都大同小異,但客戶端的RUM工具,和服務(wù)器端的相比,是有很大區(qū)別的。前者依賴于AAX腳本或者嵌入的代理代碼(agent code),在終端用戶訪問(wèn)網(wǎng)站時(shí),采集他們的信息;后者使用服務(wù)器日志、負(fù)載均衡器或者網(wǎng)絡(luò)竊聽器從數(shù)據(jù)中心收集訪客信息。
客戶端RUM在瀏覽器中觀察用戶體驗(yàn),所以能夠測(cè)量像客戶端渲染等的延遲。可惜的是,由于只有在頁(yè)面成功加載并且在瀏覽器上運(yùn)行的時(shí)候,客戶端RUM才能夠加載,所以就無(wú)法檢測(cè)導(dǎo)致其自身無(wú)法加載這樣的錯(cuò)誤,而且也可能與某些客戶端不兼容。更進(jìn)一步說(shuō),因?yàn)镽UM是在瀏覽器的沙箱里運(yùn)行的,所以也就無(wú)法看到更為低層的數(shù)據(jù),像包丟失情況,也無(wú)法計(jì)算用戶訪問(wèn)第一個(gè)頁(yè)面時(shí)的主機(jī)延遲。
服務(wù)器端的RUM的問(wèn)題正相反。因?yàn)楠?dú)立于瀏覽器,所以能看到發(fā)生的任何事情的詳細(xì)情況一一甚至是失敗的TCP連接次數(shù),然而卻看不到瀏覽器中發(fā)生的情況。或許更重要的是,因?yàn)榉?wù)器端的RUM需要訪問(wèn)網(wǎng)絡(luò)與日志,以及某些情況下的各個(gè)物理網(wǎng)絡(luò),所以對(duì)于托管或基于云計(jì)算的環(huán)境,就無(wú)法部署了。許多商業(yè)化的RUM解決方案結(jié)合了客戶端及服務(wù)器端的采集方式來(lái)解決這個(gè)問(wèn)題。
配置RUM
有兩個(gè)基本步驟來(lái)配置RUM工具。首先,訓(xùn)練工具以理解網(wǎng)站的流量模式,然后告訴工具監(jiān)視哪些重要的內(nèi)容。
按照定義,一個(gè)RUM工具應(yīng)該能捕提所有進(jìn)出服務(wù)器的流量。對(duì)工具進(jìn)行訓(xùn)練是必要的,因?yàn)槊總€(gè)網(wǎng)站都是不同的。對(duì)工具進(jìn)行訓(xùn)練涉及到下面的步驟。
1.剔除不需要的流量。
某些流量你可能不需要。像網(wǎng)站機(jī)器人(bots)、其他的監(jiān)控工具、網(wǎng)絡(luò)服務(wù)調(diào)用以及防火墻之內(nèi)的流量,所有這些都會(huì)讓你曲解終端用戶的體驗(yàn)。
2.告訴系統(tǒng)如何追蹤單個(gè)用戶。
所有網(wǎng)站都會(huì)使用某種東西來(lái)識(shí)別單個(gè)訪客,不管是會(huì)話 cookie還是URL參數(shù),甚至是IP地址。但在某些RUM實(shí)現(xiàn)中一一特別是那些使用客戶端腳本的一這些是不需要的,因?yàn)槟_本實(shí)例運(yùn)行在每個(gè)訪客的瀏覽器中。
3.告訴系統(tǒng)如何組裝頁(yè)面。
知道一個(gè)頁(yè)面在哪里結(jié)束以及另一個(gè)頁(yè)面在哪里開始,是需要技巧的。有些頁(yè)面在加載以后可能還會(huì)有異步通信(如 Google Suggest,用戶在搜索框中輸入內(nèi)容時(shí), Google Suggest會(huì)基于這些內(nèi)容顯示建議)。RUM工具需要知道什么東西組成了頁(yè)面的開始與結(jié)束,這對(duì)于合理地計(jì)時(shí)以及計(jì)算頁(yè)面數(shù)都很重要
4.識(shí)別錯(cuò)誤。
雖然每個(gè)網(wǎng)站都有一些基本的錯(cuò)誤類型(如HTTP500),但也會(huì)有一些定制的頁(yè)面,看起來(lái)跟正常頁(yè)面一樣,但卻是出錯(cuò)頁(yè)面。
一旦工具理解了怎樣才算是一次訪問(wèn),以及如何測(cè)量延遲,你就可以告訴它要監(jiān)視些什么。多數(shù)RUM工具在開始時(shí)都會(huì)有默認(rèn)的參數(shù):頁(yè)面、用戶、城市以及服務(wù)器都是用來(lái)切割數(shù)據(jù)的好方法,都會(huì)向你顯示哪些最慢,或者哪些出錯(cuò)最多。
由于RUM工具要處理大量信息,所以往往只向你顯示高層次的數(shù)據(jù),除非你特別要求做鉆取,例如,進(jìn)入到網(wǎng)站建設(shè)的剛剛發(fā)布的那部分,或者顯示一個(gè)特定的高價(jià)值客戶。一般來(lái)說(shuō),每個(gè)數(shù)據(jù)區(qū)段都可以用來(lái)生成報(bào)告,以及產(chǎn)生報(bào)警或郵件通知。
本文地址:http://www.khwajamoinuddinchishty.com//article/3345.html