本文解答了關於前端監控的常見問題。
計費相關
使用相關
為什麼有些監控頁面或API名稱中出現了星號(*)?
ARMS前端監控的頁面統計是以實際開啟的頁面URL為基礎,對各個維度進行統計。監控頁面或API名稱中的星號(*)並不是真實頁面URL的一部分,而是表示這是經過URL收斂後的結果。換言之,它表示這不是一個具體的URL,而是一些相似URL的集合。
URL收斂演算法說明
問題:“變數”會導致同類URL發散成多個,因而難以監控和分析。
目標:合并同類URL,用星號(*)代替不斷變化的“變數”。
方案:採用我們自研的URL收斂演算法,在儘可能保留語義資訊的前提下,合并同類URL,減少URL總數。主要分為以下兩步。
聚類:將相似URL歸納為一組。
“變數”識別:提取同組URL中不斷變化的“變數”,並以星號(*)代替。
收斂過程如下圖所示。
解決方案
關閉URL收斂的具體操作,請參考urlHelper。
為什麼頁面訪問量列表和頁面訪問速度列表不一致?
這是因為您的應用是SPA( Single-Page Application,單頁面應用),且開啟了SPA自動解析。在SPA的應用情境下,頁面訪問量和頁面訪問速度的統計方法如下。
頁面訪問量:觸發hashchange事件後會自動上報PV,以統計該Hash值對應頁面的PV情況。所以在查看SPA應用的頁面訪問量列表時,可以查看對應的Hash頁面的具體PV。
頁面訪問速度:因為SPA應用程式切換Hash值後,頁面的訪問速度不會變化,所以訪問速度的統計不以Hash值為維度,這樣不僅可以減少不必要的上報量,而且還可以清晰瞭解頁面的效能情況。
為什麼API日誌中沒有產生TraceId,導致無法跳轉至對應的應用監控?
- 登入ARMS控制台。
在左側導覽列選擇 ,然後單擊目標應用程式名稱。
在左側導覽列中選擇 。
請在接入步驟頁簽檢查您的ARMS探針配置項是否選中與應用監控關聯。若未選中,請選中後,再重新將ARMS探針接入前端應用。
檢查API日誌中是否產生TraceId。若仍未產生TraceId,則執行步驟5。
檢查您的頁面請求和API請求的網域名稱是否一致。為防止因跨網域名稱驗證導致API請求失敗,因此若存在跨網域名稱訪問的情況,則不能正常產生TraceId。
解決方案,請參考API與當前應用網域名稱非同源。
為什麼在診斷JS錯誤時,會顯示Source Map檔案錯誤?
請確保檔案尾碼名為.js.map。
請確保帳號有ARMS的寫入許可權,如果帳號沒有許可權,請聯絡帳號管理員。
使用者控制台的設定和setConfig的關係是什嗎?
控制台的設定僅可以協助您快速產生相應的配置代碼,產生的程式碼僅在發布後生效,而修改setConfig是直接生效的。
此外,控制台的設定只能在接入時使用,接入完成後,您需要通過setConfig來修改配置。
SDK中應該如何配置環境和版本號碼?
您可以通過配置release參數來區分版本號碼,更多資訊,請參見release。您也可以通過配置environment來區分不同環境,更多資訊,請參見environment。
prod表示線上環境。
gray表示灰階環境。
pre表示預發環境。
daily表示日常環境。
local表示本地環境。
如何查看配置的版本號碼?
- 登入ARMS控制台。
在左側導覽列選擇 ,然後單擊目標應用程式名稱。
在左側導覽列中選擇 。
日誌的版本號碼顯示在日誌列表地區的版本號碼列內。
您也可以在功能表列內按照環境和版本篩選日誌。只有在PV日誌設定完成版本號碼後,才可以使用按照版本號碼篩選日誌功能。
如何查看使用者的頁面停留時間?
- 登入ARMS控制台。
在左側導覽列選擇 ,然後單擊目標應用程式名稱。
在左側導覽列選擇 。
在會話列表中單擊目標會話的會話ID,查看會話追蹤詳情頁面。
將游標放置在訪問時間軸列內的時間軸地區上,即可查看頁面停留時間。
如何查看ARMS的前端自訂效能指標?
- 登入ARMS控制台。
在左側導覽列選擇 ,然後單擊目標應用程式名稱。
在左側導覽列中選擇 。
自訂效能指標展示在頁面訪問速度排行地區中。
ARMS配置未生效怎麼處理?
原因可能是瀏覽器緩衝未更新。您可以先在導覽列內選擇訪問明細後,切換版本號碼為最新配置的版本號碼並查看趨勢圖。如果未配置版本號碼,可以在SDK中配置release參數,請參見release。發布完成後,請觀察最新版本是否符合預期。
為什麼小程式JS Error沒有上報?
小程式JS Error沒有上報可能是因為在async方法下,資訊被小程式底層的try catch捕獲,導致錯誤資訊上傳失敗。您可以嘗試手動上報錯誤資訊,請參見前端介面說明。
可以監聽console.error的JS Error嗎?
在瀏覽器中,針對滿足JS Error格式的錯誤資訊,瀏覽器會靜默上報。
在小程式端,您可嘗試手動上報錯誤資訊,請參見前端介面說明。
在Weex環境中,小程式設定的UID為什麼沒生效?
如果未調用setConfig方法,請檢查初始化配置時是否配置UID,如果缺失請補全。
如果調用了setConfig方法,請在setConfig中重新設定UID。
日誌的儲存時效是多長?
基礎版的日誌的儲存時效為7天。
專家版的日誌的儲存時效為30天。
試用期建立的網站可以在開通專家版之後繼續使用嗎?
在試用期到期之後的15天內,網站將因為欠費被停用,您可以嘗試重新啟動應用。
在試用期到期之後的15天后,出於節約計算資源和儲存資源的考慮,超出試用時間未開通專業版的網站將被刪除,相關的資源也會釋放,這部分資料是無法找回的。
ARMS應用版本和宿主要版本分別是什嗎?
應用版本是當前線上專案的版本號碼,可以通過配置SDK的release欄位來配置,請參見release。
宿主要版本是SDK自動擷取的,是當前專案所依附的App的版本號碼,目前因為沒有對應宿主App版本的解析方案,只能解析到淘寶、支付寶或微信。
為什麼控制台中不同模組的同一個頁面的訪問量差別大?
訪問速度頁面中:訪問量=效能日誌*Sample
維度頁面中:訪問量=PV日誌
靜默上報的效能日誌只有在頁面Onload之後才上報一次,即每次重新整理頁面,只會有一次效能日誌上報。
開啟單頁應用模式後,每次切換路由都會有PV日誌上報,即單頁應用中,效能日誌在量級上遠遠小於PV日誌,導致對應的訪問量差異大。
為什麼duration會小於connect download?
ARMS資源載入的效能資料是從performance.getEntriesByType('resource')
中擷取的,當擷取頁面資源時間詳情有跨域限制時,預設情況下,跨域資源的效能資料中以下欄位從performance.getEntriesByType('resource')
中擷取的值為0。
redirectStart
redirectEnd
domainLookupStart
domainLookupEnd
connectStart
connectEnd
secureConnectionStart
requestStart
responseStart
部分時間屬性由於計算方式中涉及以上欄位,導致不準或者異常,例如:connect download:responseEnd - responseStart
,由於responseStart的時間戳記是0,導致connect download大於duration。
對於您自用的CDN資源,設定回應標頭Timing-Allow-Origin允許擷取資源時間,可以解決上述問題。
對於第三方資源,建議此時以duration的值為主參考。
如果調用__bl.performance()方法時不確定SDK是否已載入完成怎麼辦?
請參見SPA頁面上報。