效能監控:RUM vs. 合成監控

合成監控真實使用者監控 (RUM) 是兩種用於監控和提供 Web 效能洞察的方法。RUM 和合成監控提供不同的效能檢視,並具有各自的優點、良好的用例和缺點。RUM 通常最適合理解長期趨勢,而合成監控非常適合迴歸測試和緩解開發過程中較短期的效能問題。在本文中,我們將定義和比較這兩種效能監控方法。

合成監控

合成監控涉及在“實驗室”環境中監控頁面效能,通常使用自動化工具在儘可能一致的環境中進行。合成監控包括部署指令碼來模擬終端使用者可能透過 Web 應用程式執行的路徑,並報告模擬器體驗到的效能。測量的流量不是來自您的實際使用者,而是合成生成的流量,用於收集頁面效能資料。

合成監控的一個例子是 WebPageTest.org。它是在一個受控環境中進行的,地理位置、網路、裝置、瀏覽器和快取狀態等變數都是預先確定的。它為託管伺服器和 CDN 提供的每個資源以及第三方指令碼(如廣告和分析服務)生成的每個第三方資源和資源請求提供瀑布圖。

控制環境變數有助於理解效能瓶頸發生在何處,並識別任何效能問題的根源。例如,但這並不能反映使用者的實際體驗,尤其是長尾使用者。

合成監控可以是迴歸測試和生產站點監控的重要組成部分。在開發的每個階段以及在生產環境中定期測試站點。作為 持續整合 的一部分,與基線效能的任何變化都應導致推送失敗。如果生產環境中出現問題,合成監控可以提供見解,幫助在問題對使用者體驗產生負面影響之前進行識別、隔離和解決。

真實使用者監控

真實使用者監控 (RUM) 從真實使用者的計算機上衡量頁面效能。通常,第三方指令碼會在每個頁面上注入一個指令碼,以測量每個請求的頁面載入資料並進行報告。此技術監控應用程式的實際使用者互動。在真實使用者監控中,真實使用者的瀏覽器會報告體驗到的效能指標。RUM 有助於識別應用程式的使用方式,包括使用者的地理分佈及其對終端使用者體驗的影響。

與合成監控不同,RUM 捕獲真實使用者在各種裝置、瀏覽器、網路或地理位置上的效能。當用戶與應用程式互動時,所有效能計時都會被捕獲,無論採取什麼操作或查看了哪些頁面。RUM 監控實際用例,而不是由工程師、產品經理或營銷團隊預定義的合成、假定用例。這對於大型網站或複雜應用程式尤其重要,在這些應用程式中,功能或內容不斷變化,並且訪問應用程式的人群可能與建立它的人在生活經歷上存在很大差異。

透過利用 RUM,企業可以更好地瞭解其使用者並識別其網站上需要最多關注的區域。此外,RUM 還有助於瞭解您使用者的地理分佈或渠道分佈趨勢。瞭解您的使用者趨勢有助於您更好地定義業務計劃,並且從監控的角度來看,可以讓您識別需要針對性最佳化和效能改進的關鍵領域。

RUM vs 合成

合成監控非常適合在開發生命週期中捕獲迴歸,尤其是在使用 網路限制 時。它相當容易、成本低廉,並且非常適合在開發過程中進行效能抽查,作為衡量程式碼更改效果的有效方法,但它不能反映真實使用者所經歷的情況,並且僅提供狹窄的效能檢視。

另一方面,RUM 提供來自使用網站或應用程式的真實使用者的真實指標。雖然這更昂貴且可能不太方便,但它提供了至關重要的使用者體驗資料。

Performance APIs

有很多監控服務。如果您想構建自己的監控系統,可以檢視效能 API,主要是 PerformanceNavigationTimingPerformanceResourceTiming,還有 PerformanceMarkPerformanceMeasurePerformancePaintTiming