本文介绍如何使用ARMS前端监控开始监控微信小程序,以及相关的通用配置、API方法和进阶场景。
背景信息
关于微信小程序的背景信息,请参见微信小程序。
基础使用方法
基础方法包含获取微信小程序监控SDK并初始化、上报和设置安全域名这三个步骤:
- 
                        获取微信小程序监控SDK并初始化: - 在微信小程序/utils目录下新建wxLogger.js文件,并将JS文件的内容复制并粘贴至新建的wxLogger.js文件中。
- 在/utils目录下新建monitor.js文件,并将以下内容添加至新建的monitor.js文件中以完成初始化。
                              说明 您可以自定义JS文件的名称和存放位置。- 
                                    如果项目使用node module (require) 方式集成,则添加以下内容: const WXLogger = require('./wxLogger.js'); const Monitor = WXLogger.init({ pid: 'xxx', region: 'cn', // 指定应用部署的地域:中国设为cn,海外地区靠近新加坡的设为sg。 }); export default Monitor;
- 
                                    如果项目使用ES module (import) 方式集成,则添加以下内容: import WXLogger from './wxLogger.js'; const Monitor = WXLogger.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,则将https://arms-retcode.aliyuncs.com添加到Request合法域名。
- 
                              如果region设为 sg,则将https://arms-retcode-sg.aliyuncs.com添加到Request合法域名。
 
- 
                              
API方法:静默打点基础API
| 方法 | 参数 | 备注 | 示例使用场景 | 
|---|---|---|---|
| hookApp | {} | 请传入原有的App参数。 | 在App的生命周期中自动打点。 | 
| hookPage | {} | 请传入原有的Page参数。 | 在Page的生命周期中自动打点。 | 
API方法:其他设置API
| 方法 | 参数 | 备注 | 
|---|---|---|
| setCommonInfo | {[key: string]: string;} | 设置日志基础字段,可用于灰度发布等场景。 | 
| setConfig | {[key: string]: string;} | 设置config字段,具体操作,请参见SDK参考。 说明 对于setConfig方法,小程序场景不支持配置uid,您可以使用setUsername代替uid标识用户。
                                  | 
| pageShow | {} | Page Show打点,发送PV数据。 | 
| pageHide | {} | Page Hide打点,发送Health数据。 | 
| error | String/Object | 错误日志打点。 | 
| api | 请参见API参考 | API类日志上报。 | 
| sum/avg | String | 自定义求和、求均值日志上报。 | 
进阶场景
当基础使用方法无法满足需求时,请参见以下进阶场景:
- 
                        手动上报API相关信息(不采用静默上报方式): - 
                              将disableHook设为 true,不静默上报wx.request请求的日志。
- 
                              手动调用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 | 应用版本号。建议您配置,便于查看不同版本的上报信息。 | 否 | undefined | 
| environment | String | 环境字段,取值为: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参考。