終端用戶監控:真實用戶監控仍是模擬監控?

【編者按】本文做者 Dan Kuebrich 是 AppNeta 公司應用性能產品主管,在本文中,做者經過分析兩種終端用戶監控方式的利弊,結合具體狀況爲監控的選擇提出建議,本文系 OneAPM 工程師編譯整理。html

終端用戶的性能大可能是企業判斷 Web 應用程序的標準,也就是說應用程序的響應是否能知足企業的標準。研究代表,在用戶需求不斷增加的同時,頁面平均訪問量也與日俱增——相對於 2010 來講已經增加了一倍。結合市場的頻繁發佈和更新,當下優化的步伐永遠都沒法及時跟上。web

所以從終端用戶的角度出發,對應用性能進行持續監控已成爲關鍵。隨着更多監控方法的涌現,用戶又應該如何挑選最好的方法呢?後端

真實用戶監控

終端用戶監控:RUM 仍是綜合監控? 儘管 Web 應用服務器端的性能能夠經過數據中心的 HTTP 請求進行觀察測量,但整頁加載時的 CDN 靜態內容下載、頁面渲染、執行 JavaScript 等數據卻沒法很好的監測。現實世界中,真實用戶監控一般利用 JavaScript 腳本嵌入到 web 頁面,在瀏覽器上收集終端用戶在瀏覽過程當中的性能數據。瀏覽器

這種監控有助於提高對應用性能的業務理解。收集的數據顯示了頁面加載的所有時間,基於世界各地的不一樣瀏覽器。這種監控適用於桌面、移動端和平板電腦的瀏覽器。服務器

衡量實際數據的最大優點是不須要對重要用例的預約義。在每一個用戶體驗應用時,真實用戶監控捕捉全部數據,因此不管用戶看到什麼頁面,都能爲監控提供有效的性能數據。對於功能和內容不斷變化的大型網站或者複雜應用,這些數據很是重要。網絡

隨着瀏覽器 API 的研究深刻,如 Navigation Timing API,真實用戶監控數據的細節也遠勝以往。它能夠將瀏覽器返回時間細緻地劃分爲構建 DOM 的時間和到渲染內容完成以前的時間。這是一個很好的開端,尤爲是能對全面捕捉的用戶數據進行很好的分類。若是一個頁面加載緩慢,那是什麼緣由致使的呢?但儘管真實用戶監控提供這個切入點,也並不必定能精肯定位。此外,「單頁面應用程序」,也就是那些不會執行徹底頁面加載的應用也會對收集有效的真實用戶監控數據形成阻礙,如 GMail 和 Facebook。app

總體水準的提升也可能改善當前的情況,如 Resource Timing API,而如今真實用戶監控也很是適用於識別應用程序中是否存在問題。它甚至還提供了一些高級分類——是網絡問題、應用服務器問題或終端環境問題?可是在這個基礎上,真實用戶監控還沒法區分流量降低仍是網絡未鏈接。其次,真實用戶監控中的延遲還可能表示後端性能退化,或者只是相對緩慢的報告生成功能形成使用過程當中的暫時增加。而真實用戶監控針對此問題所提供的信息還遠遠不夠。性能

模擬性能監控

終端用戶監控:RUM 仍是綜合監控? 模擬性能監控,有時也被稱爲主動監控,經過外部代理在 Web 應用上運行腳本事務。這些腳本模擬典型的用戶行爲,好比搜索、查看產品、登陸、註銷等步驟來評估用戶的真實體驗。一般狀況下,綜合監控能夠由輕量的低級別代理實現,但隨着 Web 應用的複雜化,愈來愈有必要將這些代理在完整的 Web 瀏覽器上運行,才能處理頁面加載過程當中的 JavaScrip、CSS 和 AJAX 調用。測試

與真實用戶監控不一樣,模擬監控不跟蹤真實的用戶會話,有其重要的意義。首先,由於腳本在已知位置按規律進行一系列步驟,因此它的性能是可預測的。這意味着它比冗雜的真實用戶監控數據更有助於檢測警報。其次,因爲它預見性地在應用外部執行,因此在評估網站的可用性和網絡問題方面,模擬監控比真實用戶監控更爲突出,尤爲是集成網絡監控以後。優化

實際上不少公司都會在生產以前採用模擬監控,與 Selenium 集成測試的形式。模擬事務在生產中能夠重用相同的腳本(只要不改變數據)。隨着應用程序愈來愈複雜,代理指標如負載或服務器可用性在服務器正常運行時變得不那麼有用。在生產環境中運行 Selenium 腳本再也不是代理指標;它精確地測量正常運行時間,若是模擬事務完成將是一個很好的參考。

最後,因爲模擬監控能夠徹底控制客戶端(不像 sandboxed JS 驅動的真實用戶監控),能夠收集足夠的細節——完整的圖表、資源調配的性能,甚至是頁面加載的截屏/視頻等。就目前來講,這種細節檢測是瞭解單頁應用狀態轉換性的最好途徑。

誰更好?

再三思索一下的模擬監控和真實用戶監控之間的區別,權衡其中的利弊。彷佛是各有所長,那到底哪一種方式更好?

或許,二者之間並不是競爭,更像是互補關係。模擬監控提供詳情、可靠性和可用性,而真實用戶監控會提供真實的用戶體驗。基於這個緣由,這裏顯然須要將模擬監控和真實用戶監控相結合才能實現更好的應用監測。

模擬 + 真實 = 絕配

使用真實用戶監控 + 模擬監控,用戶能夠描繪出一段時間內的真正用戶流量,瞭解不一樣區域、瀏覽器和不一樣綜合腳本下的性能差別。

在這裏,機構既能夠將模擬監控立足於真實用戶數據,也在全新的跨區域的真實環境中觀測綜合性能,從而在 Web 應用的全方位監測上更進一步。 終端用戶監控:RUM 仍是綜合監控?

原文連接:http://www.appneta.com/blog/rum-vs-synthetic/

OneAPM 是應用性能管理領域的新興領軍企業,能幫助企業用戶和開發者輕鬆實現:緩慢的程序代碼和 SQL 語句的實時抓取。旗下真實用戶監控產品 Browser Insight 和模擬監控產品 Cloud Test 相輔相成,致力於爲您提供全面的網站監測體驗。和想閱讀更多技術文章,請訪問 OneAPM 官方博客 本文轉自 OneAPM 官方博客

相關文章
相關標籤/搜索