效能監控:RUM 與合成監控
合成監控 和 真實使用者監控 (RUM) 是兩種用於監控和提供 Web 效能見解的方法。RUM 和合成監控提供不同的效能檢視,並具有優勢、好的用例和不足。RUM 通常最適合理解長期趨勢,而合成監控非常適合迴歸測試並在開發過程中減輕短期效能問題。本文將定義和比較這兩種效能監控方法。
合成監控
合成監控涉及在“實驗室”環境中監控頁面的效能,通常在儘可能一致的環境中使用自動化工具。合成監控涉及部署指令碼以模擬終端使用者可能在 Web 應用程式中採取的路徑,並報告模擬器體驗的效能。測量的流量不是來自您的實際使用者,而是合成生成的流量,收集有關頁面效能的資料。
WebPageTest.org 是合成監控的一個示例。它是在受控環境中完成的,其中地理位置、網路、裝置、瀏覽器和快取狀態等變數是預先確定的。它為主機和 CDN 提供每個服務的資產的水瀑布圖,以及所有第三方指令碼(如廣告和分析服務)生成的每個第三方資產和資產請求。
控制環境變數有助於理解效能瓶頸發生的位置,並識別任何效能問題的根源。例如,它不能反映使用者的實際體驗,尤其是長尾。
合成監控可以是迴歸測試和生產網站監控的重要組成部分。在開發的每個階段以及生產環境中定期測試網站。作為持續整合的一部分,基線效能的變化應該導致推送到失敗。如果生產環境中出現問題,合成監控可以提供見解,幫助在對使用者體驗造成負面影響之前識別、隔離和解決問題。
真實使用者監控
真實使用者監控 或 RUM 測量頁面來自真實使用者機器的效能。通常,第三方指令碼會在每個頁面上注入一個指令碼,以測量和報告每個請求的頁面載入資料。此技術監控應用程式的實際使用者互動。在真實使用者監控中,真實使用者的瀏覽器會報告所體驗的效能指標。RUM 有助於識別應用程式的使用方式,包括使用者的地理分佈以及該分佈對終端使用者體驗的影響。
與合成監控不同,RUM 捕獲所有使用者的效能,無論裝置、瀏覽器、網路或地理位置如何。當用戶與應用程式互動時,將捕獲所有效能計時,無論採取何種操作或檢視哪些頁面。RUM 監控實際用例,而不是工程師、PM 或營銷團隊預先定義的合成用例。對於大型網站或複雜的應用程式,這一點尤其重要,因為這些應用程式的功能或內容不斷變化,訪問應用程式的人群在生活體驗方面可能與建立應用程式的人群大不相同。
透過利用 RUM,企業可以更好地瞭解其使用者並識別其網站上最需要關注的區域。此外,RUM 有助於瞭解使用者的地理或渠道分佈趨勢。瞭解您的使用者趨勢有助於您更好地制定業務計劃,並且從監控的角度來看,使您能夠識別關鍵區域,以針對最佳化和效能改進進行定位。
RUM 與合成監控
合成監控非常適合在開發生命週期中捕獲迴歸,尤其是在 網路節流 的情況下。它相當容易、廉價,非常適合在開發過程中對效能進行點檢,作為衡量程式碼更改效果的有效方式,但它不反映真實使用者正在體驗的內容,並且僅提供狹窄的效能檢視。
另一方面,RUM 提供來自使用該網站或應用程式的真實使用者的真實指標。雖然這更昂貴且可能不太方便,但它提供了至關重要的使用者體驗資料。
效能 API
有很多監控服務。如果您確實想自己構建監控系統,請檢視效能 API,主要是 PerformanceNavigationTiming 和 PerformanceResourceTiming,但也包括 PerformanceMark、PerformanceMeasure 和 PerformancePaintTiming。