OneAPM NI 基於旁路映象資料的真實使用者體驗監控

OneAPM官方技術部落格發表於2018-01-16

在這個應用無處不在的時代,一次網路購物,一次網路銀行交易,一次網路保險的購買,一次春運車票的購買,一次重要工作郵件的收發中出現的延時,卡頓對企業都可能意味著使用者忠誠度下降,真金白銀的損失。

因而感知真實使用者體驗(Real User Experience),將使用者訪問量,每個頁面訪問量的變化,應用的錯誤率,平均響應時間等指標作為網站運營的基本KPI已經是勢在必行。利用真實使用者體驗工具對應用、網站進行效能檢測和業務分析已經成為運營一個對外提供服務的應用的基礎要求。真實使用者體驗監測(Real User Experience Monitoring)通過採集應用或者網站的全部訪問資料,記錄每個使用者與網站的互動,從而完成使用者終端型別分析,使用者訪問量分析,不同頁面功能訪問量分析,不同頁面功能的平均響應,錯誤率等指標分析等。

真實使用者體驗工具有不同的實現方案:日誌,瀏覽器端指令碼嵌入,移動APP的SDK插碼,交換機映象流量資料採集等。如果應用由多個應用開發商合作完成,日誌和移動 APP SDK 形式的真實使用者體驗分析對應用的開發提出了較高的要求。瀏覽器插碼方式對於程式碼書寫不規範的應用又存在一定風險。相比較來說採用交換機映象流量採集的方式既安全又省心。

與指令碼植入或者 SDK 形式的資料採集不同,旁路方式無法感知使用者的動作,無法明確區分頁面、頁面元素與 AJAX 的關係。所以一般的旁路式 RUM 產品要麼是逃避這個問題採用只按照URL進行效能統計的方式,這種方式不區分頁面和頁面裡的資源以及 AJAX 呼叫,這種方式對故障排查有一定價值,但卻不能體現使用者的真實體驗而且完全沒有將客戶端裝置的卡頓和網路耗時計算在內,通過這個方式統計出來的應用平均響應時間比使用者體驗到的達到降低。 高階些的RUM 產品能夠推算出頁面與元素之間的關聯關係,但需要客戶指定一個頁面的最後一個元素,從而將非同步 AJAX 請求排除在使用者響應時間之外,但是現代應用大部分都使用了 AJAX 呼叫,每個頁面都如此配置對使用和實施人員來說太費時間。

enter image description here

OneAPM NI 基於旁路映象資料的真實使用者體驗監控 技術分享

OneAPM NI 通過分析瀏覽器與伺服器之間的報文欄位,根據 Session,頁面之間的關聯關係,頁面與AJAX呼叫的時間關係等推算出頁面的構成以及與非同步AJAX請求間的關係,從而能夠計算出與使用者在瀏覽器端傳送頁面請求到看到頁面全部內容非常接近的使用者響應時間值。

OneAPM NI 首先將 URL 呼叫根據內容型別區分為頁面和 WebService 呼叫。只有頁面型別的才納入使用者體驗的計算範疇。一個頁面是由一個URL群構成,包含靜態資源,指令碼和 AJAX 呼叫。頁面的耗時是從頁面的第一個元素請求開始到最後一個元素下載結束之間的時間。這個過程包含了瀏覽器對中間元素的處理時間,它與在瀏覽器端看到的時延差異在於沒有將瀏覽器對最後元素的渲染時間計算在內。有了 Ni 的頁面及元素瀑布圖後,我們就可以對使用者側緩慢的問題做基礎的判斷,判斷效能問題發生在哪個應用,哪個頁面,哪個元素,在網路側,應用側還是瀏覽器側。

本文系 OneAPM 工程師編譯整理。OneAPM 能為您提供端到端的應用效能監控解決方案。想閱讀更多技術文章,請訪問 OneAPM 官方技術部落格。

轉自:http://blog.oneapm.com/apm-tech/803.html

相關文章