從這點(diǎn)來(lái)看,RUM會(huì )告訴你系統是否出問(wèn)題了,因為你可以通過(guò)RUM發(fā)現問(wèn)題以及速度變慢的情況,這些情況你沒(méi)有進(jìn)行測試,從而也就不知道是否存在。
何時(shí)使用RUM
RUM工具生成兩種報表,每種都可以幫助你測量性能及診斷問(wèn)題。
單個(gè)訪(fǎng)客報表
有了這樣的報表,就像每個(gè)訪(fǎng)客都有 Firebug一樣,你可以對用戶(hù)的訪(fǎng)問(wèn)進(jìn)行回放,復查每個(gè)頁(yè)面和每個(gè)對象,也可以針對單個(gè)錯誤生成報警(例如,“假如用戶(hù)得到了一個(gè)HTP500錯誤,則給我發(fā)郵件”)。

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