任何應用監控技術的重中之重通常是針對終端用戶的基礎架構或組件進行監控。智能工具是測量用戶體驗的理想工具,因為它們理解應用的運行情況,會自動基準化性能表現,在幾乎不產生干擾的情況下解碼并建立應用子組件間的關系。
其實,在測量用戶體驗時,有兩種不同的性能監控方法:
- 模擬監控——供應商提供遠程(通常是全球的)基礎設施,可定期訪問網站并記錄每次運行的性能數據。測量的流量并非實際用戶所產生的,而是用于收集頁面性能時生成的。
-
真實用戶監控——供應商提供嵌入到每個頁面的代理(Javascript 腳本),報告當前頁面的每個請求的加載數據。顧名思義,這種監控技術主要觀測實際用戶的交互。
模擬監控VS真實用戶監控!應用性能監控工具大PK
由于這兩種方式事實上是互補的,所以沒辦法簡單的說哪種更好。Eric Shepherd (Gilt 的前端工程師)歸納了這兩種技術所具備的優勢:
“真實用戶監控和模擬監控都能從不同角度對應用性能進行監控,且具有不同的功能和針對性。真實用戶監控幫助我們理解應用的長期趨勢,而模擬監控可以診斷出并解決短期的性能問題。”
在此,筆者對兩種監控方式做了一個對比,下面向您介紹兩種監控各自的特點:
模擬監控
本質上,有了模擬監控(也稱為主動監控),用戶可以指定以下監控項目:
- 監控哪一個 URL(網站或是服務器)。
- 監控的類型(HTTP, Ping, API 還是其他)。
- 監控此 URL 的頻率。
- 如果出了問題,向誰發送告警。
- 告警的方式。
這是模擬監控測量網站性能的方式(圖片來源:Cloud Test)。
模擬監控解決方案在告警網站可用性方面頗有成效,你可以在訪客到達網站之前了解網站出現的問題。如果我們的系統檢測出網站宕機,你可以使用各種各樣的工具,分析出故障的組件,盡快修復故障,使網站平穩運行。
以下是模擬監控的幾個特點:
1.在控制的環境下進行監控
模擬監控允許用戶通過一系列的控制變量(地理位置、網絡設備、瀏覽器、高速緩存或非高速緩存),詳細地對網站或應用性能進行監控。同時,它還能幫助用戶屏蔽掉真實用戶監控產生的海量噪音。其結果是用戶可以及時地發現延遲和宕機時間,從而科學地診斷并隔離性能問題的根源。
2.了解第三方的性能
與真實用戶監控不同的是,模擬監控工具可以呈現供應商生成的網站訪問的詳細圖表,這些圖表顯示了整頁的資源加載時間,允許用戶將每一毫秒的時間對應上相關的網頁內容。例如,用戶可以深入了解到廣告供應商切換、內容交付或采用新營銷分析插件對性能的影響。
3.基準測試
啟動模擬監控不需要任何安裝或代碼嵌入。隨后,用戶可以利用模擬工具有效地監控競爭和一段時間內針對關鍵競爭者的有效基準性能。
4.開發的每個階段均可測試
模擬監控可在預生產階段對網站和 web 應用進行測試。預生產測試結果可用于性能基準,并設置應用運行的警報閾值。
5.7×24小時監控
如果非工作時間或其他低流量周期出現問題,模擬監控可在對用戶、收益和品牌效應產生負面影響之前,幫助你快速識別、隔離并解決問題,將損失降到最低。
6.跨地域分析基線和性能趨勢
結合模擬監控可以設置基線測試,以還原終端用戶訪問應用程序的方式。這些基線測試可以在測試多個瀏覽器和設備訪問應用的同時,監測關鍵事務和地理位置等信息。
真實用戶監控
模擬監控通過數據中心的服務器連接你的網站,而真實用戶監控卻能獲取真實用戶的訪問數據。因此,后者也被稱為被動監控。
使用真實用戶監控時,你需要指定監控的網站,并將一小段代碼插入該網站頁面的 HTML 內。這些步驟都很簡單快速,配置完畢之后,我們就會開始收集網站的用戶數據。這些數據來自網站的每一個頁面,而模擬監控只能收集指定的 URL 的數據。
盡管模擬監控優點很多,但有些事情它還是無法告知你。這也是為什么要使用真實用戶監控的原因。真實用戶監控不僅能提供有關網站性能的更詳細數據,還能展示用戶從打開網站開始的真實體驗。這包括連接類型、瀏覽器、用戶使用的訪問設備、他們的地理位置等等。你能看到每個訪客的聚合數據,而不是有限的樣本數據。
換句話說,模擬監控告訴你訪客可能的網站體驗,而真實用戶監控讓你了解真實的用戶體驗。
上圖展示了真實用戶監控服務展現網站性能的幾個指標——AjAX性能、頁面性能、Apdex等(圖片來源:Browser Insight)。真實用戶監控會加載整個網站(HTML, CSS,腳本,圖片等),而不單單是 HTML。這使你得到更多的網站性能數據,對用戶體驗的了解也更為深入。
以下是你使用真實用戶監控之后,可以了解到的信息:
- 實時訪問:單個頁面的加載情況。
- 性能趨勢:加載時間的變化趨勢,選定時間范圍,了解這段時間內的加載時長變化。
- 地域表現:來自不同國家的用戶在訪問網站時的體驗差異。你可能想專門改善某幾個國家的用戶的訪問體驗。
- 移動 VS. 桌面:查看通過移動端和桌面端進行訪問的用戶比例,以及各自的訪問體驗。
- 性能長尾:不僅查看最快的加載時間,也能查看那些遭遇性能緩慢的用戶情況。
- 加載狀態:詳細展示頁面的加載情況,從用戶點擊鏈接到加載完畢,時間都耗費在哪些步驟。
- 用戶滿意度:訪客是否滿意或沮喪?列明哪些性能表現可歸為令人滿意、可容忍以及令人沮喪。讓你快速了解用戶總體的滿意度。
有了這些真實用戶數據,一旦網站出現性能問題,你可以準確找到問題源頭。在這種情況下,真實用戶監控還可做為模擬監控的預兆,指出應當深入調查的組件。
總而言之,真實用戶監控是衡量網站性能的最佳手段,而模擬監控是檢查網站是否可用的最佳方法。同時使用這兩種工具,意味著你的網站能為用戶提供最優的訪問體驗。
Cloud Test 是基于云技術的實時監控系統,能夠幫大家實時監控網站性能,監控CDN、DNS、API等第三方服務提供商的可用性,實現應用性能及時監測及時報警。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客。
本文轉自 OneAPM 官方博客