全部產品
Search
文件中心

Application Real-Time Monitoring Service:開始監控DingTalk小程式

更新時間:Jul 06, 2024

本文介紹如何使用ARMS前端監控開始監控DingTalk小程式,以及相關的通用配置、API方法和進階情境。

背景資訊

關於DingTalk小程式的背景資訊,請參見DingTalk小程式

操作步驟

操作步驟包括引入npm包並初始化、上報和設定安全網域名稱。

  1. 引入npm包並初始化。
    1. 在DingTalk小程式的專案中引入alife-logger npm包,以便使用該模組來上報日誌。
      npm install alife-logger                      
    2. 將以下內容添加至/utils目錄下的monitor.js檔案中以完成初始化。
      說明 您可以自訂JS檔案的名稱和存放位置。
      import EAppLogger from 'alife-logger/eapp';
      const Monitor = EAppLogger.init({
          pid: 'xxx',
          region: "cn", // 指定應用部署的地區:中國設為cn,海外地區靠近新加坡的設為sg,靠近美國的設為us。
      });
      
      export default Monitor;            
      說明 關於參數的詳細配置,請參見通用SDK配置項
  2. 使用以下方法靜默採集和上報PV、Error、API、效能及Health資料。
    1. 在app.js中,使用Monitor.hookApp(options)方法靜默捕獲Error類日誌。其中的options即為App層相應的Object配置。
      import Monitor from '/util/monitor';
      
      App(Monitor.hookApp({
        onError(err) {
            console.log('進入onError:', err);
        },
        onLaunch() {
          console.log('進入onLaunch');
        },
      
        onShow(options) {
        },
        onHide() {
        }
      }));                         
    2. 在Page的JS檔案中通過Monitor.hookPage(options)方法靜默上報API請求、PV、Health資料。
      import Monitor from '/util/monitor';
      // 使用hookPage後,生命週期的API會自動打點。
      Page(Monitor.hookPage({
         data: {},
          onLoad(query) {
          },
          onReady() {
          // 頁面載入完成。
          },
          onShow() {
      
          },
          onLoad(query) {
      
          },
          onHide() {
      
          },
          onUnload() {
      
          }     
      }));                        
  3. 設定安全網域名稱。
    • 如果region設為cn,則將arms-retcode.aliyuncs.com添加到HTTP安全網域名稱。
    • 如果region設為sg,則將arms-retcode-sg.aliyuncs.com添加到HTTP安全網域名稱。
    • 如果region設為us,則將arms-retcode-us.aliyuncs.com添加到HTTP安全網域名稱。

API方法:靜默打點基礎API

方法參數備忘樣本使用情境
hookApp{}請傳入原有的App參數。在App的生命週期中自動打點。
hookPage{}請傳入原有的Page參數。在Page的生命週期中自動打點。
說明 小程式監控專案如需使用hookApp、hookPage嵌入生命週期打點,必須符合標準小程式關於App和Page的規範,即App層有onError,Page層有onShow、onHide、onUnload。使用方法樣本,請參見操作步驟

API方法:其他設定API

方法參數備忘
setCommonInfo{[key: string]: string;}設定日誌基礎欄位,可用於灰階發布等情境。
setConfig{[key: string]: string;}設定config欄位,具體操作,請參見SDK配置項參數
pageShow{}觸發Page Show,發送PV資料。
pageHide{}觸發Page Hide,發送Health資料。
errorString/Object錯誤記錄檔打點。
api請參見前端介面說明API類日誌上報。
sum/avgString自訂求和、求均值日誌上報。

進階使用方法

當基礎使用方法無法滿足需求時,請參見以下進階情境。

  • 手動上報API相關資訊(不採用靜默上報方式)

    1. disableHook設為true,不靜默上報dd.httpRequest請求的日誌。
    2. 手動調用api()方法上報API相關資訊。
  • 取消靜默上報並改為手動打點

    1. 在App和Page對應的JS檔案中不再使用hookApp()hookPage()方法。

    2. 如需發送當前頁面的PV資料,則在Page的onShow()方法下調用pageShow()方法。

      說明 請勿與hookPage()方法同時使用此方法,否則會造成PV類日誌重複上報。
      import Monitor from '/util/monitor';
      Page({
          onShow: function() {
              Monitor.pageShow();
          }
      })                         
    3. 如需發送當前頁面的Health類資料,統計當前頁面的健康度和頁面停留時間,則在Page的onHide()onUnload()方法下調用pageHide()方法。

      說明 請勿與hookPage()方法同時使用此方法,否則會造成日誌重複上報。
      import Monitor from '/util/monitor';
        Page({
      
            onHide: function() {
                Monitor.pageHide();
            },
            onUnload: function() {
                Monitor.pageHide();
            }
            ... 
        })                    

通用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
是否為了便於排查錯誤而記錄報錯的使用者行為。
false
enableLinkTrace
Boolean
進行前後端鏈路追蹤,請參見使用前後端鏈路追蹤診斷API錯誤原因
false

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