檢查某個已知功能是否正常,綜合監(jiān)控是非常有用的,換句話說,綜合監(jiān)控會向你顯示某件事情是否工作正常。
何時使用綜合監(jiān)控
綜合監(jiān)控和RUM是兩種相互補(bǔ)充的技術(shù),在Web應(yīng)用的規(guī)?;\(yùn)維中都扮演著非常重要的角色。但了解何時使用何種工具也很重要。
要想在用戶實際遇到問題之前就對其有所了解的話,綜合監(jiān)控是很合適的。而且綜合監(jiān)控也適合于建立基線,因為可以定期運(yùn)行綜合監(jiān)控,而不用考慮訪客流量有多大。綜合監(jiān)控用于:
● 監(jiān)控業(yè)務(wù)交易中的關(guān)鍵步驟,如目錄頁或評論過程。
● 對那些你無法控制但網(wǎng)站又依賴其運(yùn)行的組件的健康狀況進(jìn)行監(jiān)控,這樣樣的組件可能是 Facebook的粉絲頁面、支付服務(wù),或者表單工具。
● 在不同的環(huán)境中運(yùn)行同樣的測試。因為每次運(yùn)行的測試都是相同的,對不同的城市或運(yùn)維商進(jìn)行比較,就可以了解某個地理區(qū)域是否很慢,或某個服務(wù)提供商宕機(jī)
注意,綜合監(jiān)控與加載測試(load testing)遵循同樣的原則,但其目標(biāo)并不是用大流量測試網(wǎng)站的承受力,而是評測網(wǎng)站的性能對于測試時的實際訪客來說感覺如何。
綜合監(jiān)控的局限
綜合監(jiān)控服務(wù)很普通,而且也承受得起。假如你的網(wǎng)站還沒有連接到Internet,可能就要部署自己的測試服務(wù)器。網(wǎng)上已經(jīng)有一些可供選擇的服務(wù)。在選擇一項服務(wù)時,要考慮下面
是否易于記錄與管理腳本?
測試腳本要與應(yīng)用程序保持同步,因為應(yīng)用的每個新版本都可能破壞現(xiàn)存的腳本,從而產(chǎn)生虛假報警。為了保持測試系統(tǒng)正??捎?,你可能需要花費(fèi)大量的時間對其進(jìn)行維護(hù)。
能給出什么樣的報表?
越高端的服務(wù)提供的報表越會有更多的細(xì)節(jié)。
報警是否與后臺已用的監(jiān)控工具兼容?
從外部世界獲得的性能數(shù)據(jù)要發(fā)送給同一個的管理平臺,即用以追蹤后臺健康狀況的管理平臺,從而可以借助這個平臺對性能數(shù)據(jù)進(jìn)行分析。常常有這樣的情況,一個外部錯誤是
標(biāo)志系統(tǒng)出現(xiàn)問題的第一個信號。
是否能測試到應(yīng)用的所有部分?
現(xiàn)代網(wǎng)站包括文字消息、郵件注冊、Twitter活動、HTTP5Websockets、服務(wù)器發(fā)送的事件、嵌入式視頻、AJAX,以及使用 Flash、Flex、Java及 Silverlight開發(fā)的富互聯(lián)網(wǎng)應(yīng)用(RIAs),所以,在簽下合同之前,一定要確信你了解了所有需要監(jiān)控的組件。
測試是由腳本還是實際的瀏覽器來做?
有些綜合監(jiān)控服務(wù)會模擬瀏覽器向你的網(wǎng)站發(fā)送HTTP命令,然后記錄結(jié)果。其他的則使用我們稱之為瀏覽器木偶( browser puppetry)的方式,實際控制一個真實的瀏覽器。后者很貴,但卻不會由于網(wǎng)站的變化而變得脆弱,因為測試腳本會操縱瀏覽器的DOM,而不僅僅是發(fā)送文本。
遇到錯誤時,會發(fā)生什么?
有些服務(wù)會記錄錯誤的細(xì)節(jié)信息,捕捉到錯誤消息,就像在瀏覽器中看到的那樣,并且觸發(fā)另外的測試,如路由追蹤,而其他的僅是發(fā)回報警消息。報告越詳細(xì),成本也就越高,但對于修復(fù)問題來說,卻越容易。
配置綜合監(jiān)控
設(shè)置監(jiān)控控相對容易,特別是如果只想監(jiān)控一些關(guān)鍵頁面的話。一般來說,只需要給出要測試的URL、測試時間間隔以及遇到錯誤時要采取的行動。
要是想做更多的監(jiān)控,可能需要提供一個“中性”的用戶賬號,這個賬號可以用來做測試,但不會對系統(tǒng)造成什么影響,還要提供會話參數(shù)以及其他細(xì)節(jié)信息,監(jiān)控服務(wù)使用這些細(xì)節(jié)信息可以更好地模擬真實的用戶訪問。
要記住的是,綜合測試也是要消耗服務(wù)器資源的。我們見到過這樣的網(wǎng)站建設(shè),來自綜合監(jiān)控腳本的流量超過了50%,這樣的話,實際上是會降低訪客的體驗的。
本文地址:http://m.blackside-inc.com//article/3344.html