全部產品
Search
文件中心

Application Real-Time Monitoring Service:以CDN方式接入前端監控

更新時間:Mar 13, 2025

如果需要使用ARMS前端監控來監控Web應用,必須先通過CDN或npm方式安裝探針。本文介紹如何通過CDN方式為Web應用安裝ARMS前端監控探針。

安裝前端監控探針

  1. 登入ARMS控制台

  2. 在左側導覽列選擇前端監控 > 前端列表,並在頂部功能表列選擇目標地區。

  3. 前端列表頁面右上方單擊创建应用站点

  4. 接入中心面板的前端、移動端和使用者端應用地區,單擊Web & H5

    Dialog Box Create New Site

  5. 接入Web & H5面板的建立應用地區輸入自訂的應用程式名稱。

  6. 接入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內容,包括errorwarnloginfo等。

      重要

      此功能會影響Console的路徑。

  7. 選擇其中一種方法安裝前端監控探針。

    • 非同步載入:複製提供的代碼並粘貼至頁面HTML中 <body>元素內部的第一行,然後重啟應用。tab_bm_async_load

      完整的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>元素內部的第一行,然後重啟應用。tab_bm_sync_load

    • npm包:

      1. 執行以下命令以引入npm包。

        npm install alife-logger --save
      2. 從控制台上複製以下初始化命令並執行。

        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

應用版本號碼。建議您配置,便於查看不同版本的上報資訊。

undefined

environment

String

環境欄位,取值為:prod、gray、pre、daily和local,其中:

  • prod表示線上環境。

  • gray表示灰階環境。

  • pre表示預發環境。

  • daily表示日常環境。

  • local表示本地環境。

prod

sample

Integer

日誌採樣配置,值為1~100的整數。對效能日誌和成功API日誌按照1/sample的比例採樣,關於效能日誌和成功API日誌的指標說明,請參見統計指標說明

1

behavior

Boolean

是否為了便於排查錯誤而記錄報錯的使用者行為。

true

enableSPA

Boolean

監聽頁面的hashchange事件並重新上報PV,適用於單頁面應用情境。

false

enableLinkTrace

Boolean

進行前後端鏈路追蹤,請參見使用前後端鏈路追蹤診斷API錯誤原因

false

ARMS前端監控還提供了更多SDK配置項,可滿足進一步的需求,具體操作,請參見SDK參考