全部產品
Search
文件中心

Application Real-Time Monitoring Service:在Weex環境接入前端監控

更新時間:Jul 06, 2024

本文介紹如何在Weex環境中接入ARMS前端監控。

匯入npm包

如需在Weex環境中使用ARMS前端監控,則首先需要在專案中執行以下命令匯入alife-logger npm包,以使用專門的WeexLogger模組來上報日誌。

npm install alife-logger --save

初始化

/utils目錄下建立monitor.js檔案,並按照以下範例程式碼完成SDK初始化。

說明 在Weex應用入口調用singleton(props)靜態方法擷取執行個體時,需要在傳入的props中設定相關配置,請參見:
// 在monitor.js檔案中增加以下內容。
import WeexLogger from 'alife-logger/weex';

const fetch = weex.requireModule('stream').fetch;
const serialize = (data) = >{
    data = data || {};
    var arr = [];
    for (var k in data) {
        if (Object.prototype.hasOwnProperty.call(data, k) && data[k] !== undefined) {
            arr.push(k + '=' + encodeURIComponent(data[k]).replace(/\(/g, '%28').replace(/\)/g, '%29'));
        }
    }
    return arr.join('&');
}

// 初始化SDK。
const wxLogger = WeexLogger.singleton({
    pid: 'your-project-id',
    uid: 'zhangsan',
    // 設定uid,用於產生UV報告。
    page: 'Lazada | Home',
    // 設定初始頁面名稱。SDK將在初始化完成後發送PV日誌。
    imgUrl: 'https://arms-retcode.aliyuncs.com/r.png?',
    // 設定日誌上傳地址。如需部署至新加坡地區,則改為'https://arms-retcode-sg.aliyuncs.com/r.png?'。
    // 設定GET上報方法,樣本如下:
    sendRequest: (data, imgUrl) = >{
        const url = imgUrl + serialize(data);
        fetch({
            method: 'GET',
            url
        });
    },
    // 設定POST上報方法,樣本如下:
    postRequest: (data, imgUrl) = >{
        fetch({
            method: 'POST',
            type: 'json',
            url: imgUrl,
            body: JSON.stringify(data)
        });
    }
});

export
default wxLogger;

上報

通過執行個體調用相應的上報方法進行上報。

// in some biz module
import wxLogger from '/utils/monitor';
wxLogger.api('/search.do', true, 233, 'SUCCESS');

通用API:@static singleton()

@static singleton()為靜態方法,作用是返回一個單例對象。props只在第一次調用時生效,用法如下表所示。

此方法可用於在應用入口初始化SDK,請參見初始化

表 1. WeexLogger.singleton(props)調用參數說明
屬性 類型 描述 是否必需 預設值
pid String 網站ID
page String 初始化的Page Name
uid String 使用者ID
imgUrl String 日誌上傳地址,以英文問號(?)結尾。

通用API:setPage()

setPage()的作用是設定當前頁面的Page Name,並且預設上報一次PV日誌。

import wxLogger from '/utils/monitor';
// ...
wxLogger.setPage(nextPage);
表 2. wxLogger.setPage(nextPage)調用參數說明
參數 類型 描述 是否必需 預設值
nextPage String Page Name

通用API:setConfig()

setConfig()的作用是在SDK初始化完成後修改部分配置項,具體配置與singleton()方法相同。配置項詳情,請參見setConfig()

import wxLogger from '/utils/monitor';
// ...
wxLogger.setConfig(config);
表 3. wxLogger.setConfig(config)調用參數說明
參數 類型 描述 是否必需 預設值
config Object 需要修改的配置項以及值。
uid String 使用者ID,用於統計UV。 Storage設定

日誌上報API

請參見前端介面說明中的日誌上報介面。

通用SDK配置項

ARMS前端監控提供一系列SDK配置項,讓您能夠通過設定參數來滿足額外需求。以下是適用於本文情境的通用配置項。

pid
String
專案唯一ID,由ARMS在建立網站時自動產生。
uid
String
使用者ID,用於標識訪問使用者,可手動設定,用於根據使用者ID檢索。如果不配置,則由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

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