本文介紹如何使用ARMS前端監控開始監控支付寶小程式,以及相關的通用配置、API方法和進階情境。
背景資訊
關於支付寶小程式的背景資訊,請參見支付寶小程式。
基礎使用方法
基礎方法包含引入npm包並初始化、上報和設定安全網域名稱這三個步驟:
引入npm包並初始化:
在支付寶小程式的專案中引入
alife-logger
npm包,以便使用該模組來上報日誌。npm install alife-logger
將以下內容添加至 /utils目錄下的monitor.js檔案中以完成初始化。
說明您可以自訂JS檔案的名稱和存放位置。
import AlipayLogger from 'alife-logger/alipay'; const Monitor = AlipayLogger.init({ pid: 'xxx', region: "cn", // 指定應用部署的地區:中國設為cn,中國以外地區設為sg。 }); export default Monitor;
說明關於參數的詳細配置,請參見通用SDK配置項。
使用以下方法靜默採集PV、Error、API、效能及Health資料:
在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() { } }));
在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() { } }));
設定安全網域名稱:
如果region設為
cn
,則將arms-retcode.aliyuncs.com添加到HTTP安全網域名稱。如果region設為
sg
,則將arms-retcode-sg.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資料。 |
error | String/Object | 錯誤記錄檔打點。 |
api | 請參見前端介面說明 | API類日誌上報。 |
sum/avg | String | 自訂求和、求均值日誌上報。 |
進階情境
當基礎使用方法無法滿足需求時,請參見以下進階情境:
手動上報API相關資訊(不採用靜默上報方式):
將disableHook設為
true
,不靜默上報my.httpRequest請求的日誌。手動調用api()方法上報API相關資訊。
取消靜默上報並改為手動打點:
在App和Page對應的JS檔案中不再使用hookApp、hookPage方法。
如需發送當前頁面的PV資料,則在Page的onShow方法下調用pageShow()方法。
說明請勿與hookPage()方法同時使用此方法,否則會造成PV類日誌重複上報。
import Monitor from '/util/monitor'; Page({ onShow: function() { Monitor.pageShow(); } })
如需發送當前頁面的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 | 應用版本號碼。建議您配置,便於查看不同版本的上報資訊。 | 否 |
|
environment | String | 環境欄位,取值為:prod、gray、pre、daily和local,其中:
| 否 |
|
sample | Integer | 日誌採樣配置,值為1~100的整數。對效能日誌和成功API日誌按照 | 否 |
|
behavior | Boolean | 是否為了便於排查錯誤而記錄報錯的使用者行為。 | 否 |
|
enableLinkTrace | Boolean | 進行前後端鏈路追蹤,請參見使用前後端鏈路追蹤診斷API錯誤原因。 | 否 |
|
ARMS前端監控還提供了更多SDK配置項,可滿足進一步的需求。更多資訊,請參見SDK參考。