開始監(jiān)控釘釘小程序
本文介紹如何使用ARMS前端監(jiān)控開始監(jiān)控釘釘小程序,以及相關(guān)的通用配置、API方法和進(jìn)階場景。
背景信息
關(guān)于釘釘小程序的背景信息,請參見釘釘小程序。
操作步驟
操作步驟包括引入npm包并初始化、上報(bào)和設(shè)置安全域名。
- 引入npm包并初始化。
- 在釘釘小程序的項(xiàng)目中引入alife-logger npm包,以便使用該模塊來上報(bào)日志。
npm install alife-logger
- 將以下內(nèi)容添加至/utils目錄下的monitor.js文件中以完成初始化。說明 您可以自定義JS文件的名稱和存放位置。
import EAppLogger from 'alife-logger/eapp'; const Monitor = EAppLogger.init({ pid: 'xxx', region: "cn", // 指定應(yīng)用部署的地域:中國設(shè)為cn,海外地區(qū)靠近新加坡的設(shè)為sg,靠近美國的設(shè)為us。 }); export default Monitor;
說明 關(guān)于參數(shù)的詳細(xì)配置,請參見通用SDK配置項(xiàng)。
- 在釘釘小程序的項(xiàng)目中引入alife-logger npm包,以便使用該模塊來上報(bào)日志。
- 使用以下方法靜默采集和上報(bào)PV、Error、API、性能及Health數(shù)據(jù)。
- 在app.js中,使用
Monitor.hookApp(options)
方法靜默捕獲Error類日志。其中的options即為App層相應(yīng)的Object配置。import Monitor from '/util/monitor'; App(Monitor.hookApp({ onError(err) { console.log('進(jìn)入onError:', err); }, onLaunch() { console.log('進(jìn)入onLaunch'); }, onShow(options) { }, onHide() { } }));
- 在Page的JS文件中通過
Monitor.hookPage(options)
方法靜默上報(bào)API請求、PV、Health數(shù)據(jù)。import Monitor from '/util/monitor'; // 使用hookPage后,生命周期的API會自動打點(diǎn)。 Page(Monitor.hookPage({ data: {}, onLoad(query) { }, onReady() { // 頁面加載完成。 }, onShow() { }, onLoad(query) { }, onHide() { }, onUnload() { } }));
- 在app.js中,使用
- 設(shè)置安全域名。
- 如果region設(shè)為
cn
,則將arms-retcode.aliyuncs.com添加到HTTP安全域名。 - 如果region設(shè)為
sg
,則將arms-retcode-sg.aliyuncs.com添加到HTTP安全域名。 - 如果region設(shè)為
us
,則將arms-retcode-us.aliyuncs.com添加到HTTP安全域名。
- 如果region設(shè)為
API方法:靜默打點(diǎn)基礎(chǔ)API
方法 | 參數(shù) | 備注 | 示例使用場景 |
hookApp | {} | 請傳入原有的App參數(shù)。 | 在App的生命周期中自動打點(diǎn)。 |
hookPage | {} | 請傳入原有的Page參數(shù)。 | 在Page的生命周期中自動打點(diǎn)。 |
API方法:其他設(shè)置API
方法 | 參數(shù) | 備注 |
setCommonInfo | {[key: string]: string;} | 設(shè)置日志基礎(chǔ)字段,可用于灰度發(fā)布等場景。 |
setConfig | {[key: string]: string;} | 設(shè)置config字段,具體操作,請參見SDK參考。 |
pageShow | {} | 觸發(fā)Page Show,發(fā)送PV數(shù)據(jù)。 |
pageHide | {} | 觸發(fā)Page Hide,發(fā)送Health數(shù)據(jù)。 |
error | String/Object | 錯(cuò)誤日志打點(diǎn)。 |
api | 請參見前端接口說明 | API類日志上報(bào)。 |
sum/avg | String | 自定義求和、求均值日志上報(bào)。 |
高級使用方法
當(dāng)基礎(chǔ)使用方法無法滿足需求時(shí),請參見以下進(jìn)階場景。
手動上報(bào)API相關(guān)信息(不采用靜默上報(bào)方式)
- 將disableHook設(shè)為
true
,不靜默上報(bào)dd.httpRequest請求的日志。 - 手動調(diào)用
api()
方法上報(bào)API相關(guān)信息。
- 將disableHook設(shè)為
取消靜默上報(bào)并改為手動打點(diǎn)
在App和Page對應(yīng)的JS文件中不再使用
hookApp()
、hookPage()
方法。如需發(fā)送當(dāng)前頁面的PV數(shù)據(jù),則在Page的
onShow()
方法下調(diào)用pageShow()
方法。說明 請勿與hookPage()
方法同時(shí)使用此方法,否則會造成PV類日志重復(fù)上報(bào)。import Monitor from '/util/monitor'; Page({ onShow: function() { Monitor.pageShow(); } })
如需發(fā)送當(dāng)前頁面的Health類數(shù)據(jù),統(tǒng)計(jì)當(dāng)前頁面的健康度和頁面停留時(shí)間,則在Page的
onHide()
和onUnload()
方法下調(diào)用pageHide()
方法。說明 請勿與hookPage()
方法同時(shí)使用此方法,否則會造成日志重復(fù)上報(bào)。import Monitor from '/util/monitor'; Page({ onHide: function() { Monitor.pageHide(); }, onUnload: function() { Monitor.pageHide(); } ... })
通用SDK配置項(xiàng)
ARMS前端監(jiān)控提供一系列SDK配置項(xiàng),讓您能夠通過設(shè)置參數(shù)來滿足額外需求。以下是適用于本文場景的通用配置項(xiàng)。
pid | String | 項(xiàng)目唯一ID,由ARMS在創(chuàng)建站點(diǎn)時(shí)自動生成。 | 是 | 無 |
uid | String | 用戶ID,用于標(biāo)識訪問用戶,可手動配置,用于根據(jù)用戶ID檢索。如果不配置,則由SDK隨機(jī)自動生成且每半年更新一次。 | 否 | 由SDK自動生成 |
tag | String | 傳入的標(biāo)記,每條日志都會攜帶該標(biāo)記。 | 否 | 無 |
release | String | 應(yīng)用版本號。建議您配置,便于查看不同版本的上報(bào)信息。 | 否 |
|
environment | String | 環(huán)境字段,取值為:prod、gray、pre、daily和local,其中:
| 否 |
|
sample | Integer | 日志采樣配置,值為1~100的整數(shù)。對性能日志和成功API日志按照 | 否 |
|
behavior | Boolean | 是否為了便于排查錯(cuò)誤而記錄報(bào)錯(cuò)的用戶行為。 | 否 |
|
enableLinkTrace | Boolean | 進(jìn)行前后端鏈路追蹤,請參見使用前后端鏈路追蹤診斷API錯(cuò)誤原因。 | 否 |
|
ARMS前端監(jiān)控還提供了更多SDK配置項(xiàng),可滿足進(jìn)一步的需求。更多信息,請參見SDK參考。