如果需要使用ARMS前端監控來監控Web應用,必須先通過CDN或npm方式安裝探針。本文介紹如何通過CDN方式為Web應用安裝ARMS前端監控探針。
安裝前端監控探針
登入ARMS控制台。
在左側導覽列選擇,並在頂部功能表列選擇目標地區。
在前端列表頁面右上方單擊创建应用站点。
在接入中心面板的前端、移動端和使用者端應用地區,單擊Web & H5。

在接入Web & H5面板的建立應用地區輸入自訂的應用程式名稱。
在接入Web & H5面板的SDK擴充配置項地區選中需要的選項,便於快捷產生待插入頁面的BI探針代碼。
關閉API自動上報:選中此項後,需手動調用
__bl.api()方法上報API成功率。開啟SPA自動解析:選中此項後,ARMS會監聽頁面的
hashchange事件並自動上報PV,適用於SPA(Single-Page Application,單頁面應用)情境。開啟首屏FMP採集:選中此項後,ARMS將採集首屏FMP(First Meaningful Paint,首次有效渲染)資料。
開啟頁面資源上報:選中此項後,在頁面onload事件觸發時會上報頁面載入的靜態資源。
與應用監控關聯:選中此項後,API請求會與後端應用監控進行端到端關聯。
開啟使用者行為回溯:選中此項後,JS錯誤診斷可提供使用者行為回溯。
開啟Console追蹤:開啟此項後,使用者行為回溯會追蹤Console內容,包括
error、warn、log、info等。重要此功能會影響Console的路徑。
選擇其中一種方法安裝前端監控探針。
非同步載入:複製提供的代碼並粘貼至頁面HTML中
<body>元素內部的第一行,然後重啟應用。
完整的HTML樣本:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1" /> <meta name="viewport" content="width=device-width" /> <title>ARMS</title> </head> <body> <script> !(function (c, b, d, a) { c[a] || (c[a] = {}) c[a].config = { pid: 'xxx', appType: 'web', imgUrl: 'https://arms-retcode.aliyuncs.com/r.png?', sendResource: true, enableLinkTrace: true, behavior: true, useFmp: true, enableSPA: true, } with (b) with (body) with (insertBefore(createElement('script'), firstChild)) setAttribute('crossorigin', '', (src = d)) })(window, document, 'https://sdk.rum.aliyuncs.com/v1/bl.js', '__bl') </script> <div id="app"></div> </body> </html>同步載入:複製提供的代碼並粘貼至頁面HTML中
<body>元素內部的第一行,然後重啟應用。
npm包:
執行以下命令以引入npm包。
npm install alife-logger --save從控制台上複製以下初始化命令並執行。
const BrowserLogger = require('alife-logger'); const __bl = BrowserLogger.singleton({pid:"b590lhguqs@8cc3f63543d****",appType:"web",imgUrl:"https://arms-retcode.aliyuncs.com/r.png?",sendResource:true,behavior:true,enableLinkTrace:true,enableConsole:true});
非同步載入和同步載入方式的區別
非同步載入:又稱為非阻塞載入,表示瀏覽器在下載執行JS之後還會繼續處理後續頁面。若對頁面效能的要求非常高,建議使用此方式。
重要由於是非同步載入,ARMS無法捕捉到監控SDK載入初始化完成之前的JS錯誤和資源載入錯誤。
同步載入:又稱為阻塞載入,表示當前JS載入完畢後才會進行後續處理。如需捕捉從頁面開啟到關閉的整個過程中的JS錯誤和資源載入錯誤,建議使用此方式。
自訂UID
使用同步載入或非同步載入方式安裝ARMS前端監控探針時,Web端SDK會自動產生UID來統計UV等資訊。自動產生的UID可以用來區分使用者的標識,但不具有業務屬性,如需自訂UID,請在上述代碼config中加入以下內容:
uid: "xxx" // 該值用於區分使用者的標識,根據業務設定。例如:
<script>
!(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"xxx",appType:undefined,imgUrl:"https://arms-retcode.aliyuncs.com/r.png?", uid: "xxxx"};
with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d)
})(window,document,"https://sdk.rum.aliyuncs.com/v1/bl.js","__bl");
</script>如果更改了上一步的SDK擴充配置項,代碼將會發生變化,請務必重新複製粘貼。
通用SDK配置項
ARMS前端監控提供一系列SDK配置項,讓您能夠通過設定參數來滿足額外需求。以下是適用於本文情境的通用配置項。
|
|
|
|
|
pid | String | 專案唯一ID,由ARMS在建立網站時自動產生。 | 是 | 無 |
uid | String | 使用者ID,用於標識訪問使用者,可手動設定,用於根據使用者ID檢索。如果不配置,則由SDK隨機自動產生且每半年更新一次。 | 否 | 由SDK自動產生 |
tag | String | 傳入的標記,每條日誌都會攜帶該標記。 | 否 | 無 |
release | String | 應用版本號碼。建議您配置,便於查看不同版本的上報資訊。 | 否 |
|
environment | String | 環境欄位,取值為:prod、gray、pre、daily和local,其中:
| 否 |
|
sample | Integer | 日誌採樣配置,值為1~100的整數。對效能日誌和成功API日誌按照 | 否 |
|
behavior | Boolean | 是否為了便於排查錯誤而記錄報錯的使用者行為。 | 否 |
|
enableSPA | Boolean | 監聽頁面的hashchange事件並重新上報PV,適用於單頁面應用情境。 | 否 |
|
enableLinkTrace | Boolean | 進行前後端鏈路追蹤,請參見使用前後端鏈路追蹤診斷API錯誤原因。 | 否 |
|
ARMS前端監控還提供了更多SDK配置項,可滿足進一步的需求,具體操作,請參見SDK參考。