开始监控钉钉小程序

本文介绍如何使用ARMS前端监控开始监控钉钉小程序,以及相关的通用配置、API方法和进阶场景。

背景信息

关于钉钉小程序的背景信息,请参见钉钉小程序

操作步骤

操作步骤包括引入npm包并初始化、上报和设置安全域名。

  1. 引入npm包并初始化。
    1. 在钉钉小程序的项目中引入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. PageJS文件中通过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. AppPage对应的JS文件中不再使用hookApp()hookPage()方法。

    2. 如需发送当前页面的PV数据,则在PageonShow()方法下调用pageShow()方法。

      说明 请勿与hookPage()方法同时使用此方法,否则会造成PV类日志重复上报。
      import Monitor from '/util/monitor';
      Page({
          onShow: function() {
              Monitor.pageShow();
          }
      })                         
    3. 如需发送当前页面的Health类数据,统计当前页面的健康度和页面停留时间,则在PageonHide()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、dailylocal,其中:

  • 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参考