在這個應用無處不在的時代,一次網絡購物,一次網絡銀行交易,一次網絡保險的購買,一次春運車票的購買,一次重要工做郵件的收發中出現的延時,卡頓對企業均可能意味着用戶忠誠度降低,真金白銀的損失。html
於是感知真實用戶體驗(Real User Experience),將用戶訪問量,每一個頁面訪問量的變化,應用的錯誤率,平均響應時間等指標做爲網站運營的基本KPI已是勢在必行。利用真實用戶體驗工具對應用、網站進行性能檢測和業務分析已經成爲運營一個對外提供服務的應用的基礎要求。真實用戶體驗監測(Real User Experience Monitoring)經過採集應用或者網站的所有訪問數據,記錄每一個用戶與網站的交互,從而完成用戶終端類型分析,用戶訪問量分析,不一樣頁面功能訪問量分析,不一樣頁面功能的平均響應,錯誤率等指標分析等。瀏覽器
真實用戶體驗工具備不一樣的實現方案:日誌,瀏覽器端腳本嵌入,移動APP的SDK插碼,交換機鏡像流量數據採集等。若是應用由多個應用開發商合做完成,日誌和移動 APP SDK 形式的真實用戶體驗分析對應用的開發提出了較高的要求。瀏覽器插碼方式對於代碼書寫不規範的應用又存在必定風險。相比較來講採用交換機鏡像流量採集的方式既安全又省心。安全
與腳本植入或者 SDK 形式的數據採集不一樣,旁路方式沒法感知用戶的動做,沒法明確區分頁面、頁面元素與 AJAX 的關係。因此通常的旁路式 RUM 產品要麼是逃避這個問題採用只按照URL進行性能統計的方式,這種方式不區分頁面和頁面裏的資源以及 AJAX 調用,這種方式對故障排查有必定價值,但卻不能體現用戶的真實體驗並且徹底沒有將客戶端設備的卡頓和網絡耗時計算在內,經過這個方式統計出來的應用平均響應時間比用戶體驗到的達到下降。 高級些的RUM 產品可以推算出頁面與元素之間的關聯關係,但須要客戶指定一個頁面的最後一個元素,從而將異步 AJAX 請求排除在用戶響應時間以外,可是現代應用大部分都使用了 AJAX 調用,每一個頁面都如此配置對使用和實施人員來講太費時間。服務器
OneAPM NI 基於旁路鏡像數據的真實用戶體驗監控 技術分享網絡
OneAPM NI 經過分析瀏覽器與服務器之間的報文字段,根據 Session,頁面之間的關聯關係,頁面與AJAX調用的時間關係等推算出頁面的構成以及與異步AJAX請求間的關係,從而可以計算出與用戶在瀏覽器端發送頁面請求到看到頁面所有內容很是接近的用戶響應時間值。異步
OneAPM NI 首先將 URL 調用根據內容類型區分爲頁面和 WebService 調用。只有頁面類型的才歸入用戶體驗的計算範疇。一個頁面是由一個URL羣構成,包含靜態資源,腳本和 AJAX 調用。頁面的耗時是從頁面的第一個元素請求開始到最後一個元素下載結束之間的時間。這個過程包含了瀏覽器對中間元素的處理時間,它與在瀏覽器端看到的時延差別在於沒有將瀏覽器對最後元素的渲染時間計算在內。有了 Ni 的頁面及元素瀑布圖後,咱們就能夠對用戶側緩慢的問題作基礎的判斷,判斷性能問題發生在哪一個應用,哪一個頁面,哪一個元素,在網絡側,應用側仍是瀏覽器側。工具
本文系 OneAPM 工程師編譯整理。OneAPM 能爲您提供端到端的應用性能監控解決方案。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客。性能