应用设置

小程序列表点击对应的应用设置,可设置该应用的基本设置、阈值设置、评分设置。

基本设置

该模板可设置小程序应用名称、下载探针、各指标(onReady、首次响应、网络请求响应时间、网络请求错误率、JS错误率、服务端响应时间)在地域模块展示的颜色和区间值。

小程序

阈值设置

小程序

评分设置

该模块可以设置小程序性能评分各指标的阈值。衡量小程序整体体验的评分,基于JS错误率、网络请求错误率、网络请求响应时间、首次响应、onready、五项综合评分;各项评分满分为100分; 评分=JS错误率评分20%+onready评分20%+首次响应评分20%+网络请求响应时间20%+网络请求错误率评分*20%。

小程序

设置配置信息

设置基本配置信息, 此接口需要在app.js首部调用

monitor.config(data)

参数:

  • data: 对象参数,设置基本参数
{
  beacon: '...', // 数据上传服务器
  key: '', //TINGYUN小程序应用key
  id: '', //TINGYUN小程序账号id 
  sampleRate: 1 //初始采样率
}

示例:

const monitor = require('./agent/tingyun-mp-agent.js');
monitor.config({
  beacon: 'https://beacon-mp.tingyun.com',
  key: '4gA5HRiCw8g',
  id: 'QpKfzsx-PGQ',
  sampleRate: 1
})

设置用户信息

设置用户Id以及其他附加信息

monitor.setUser(userId[, metaData])

参数:

  • userId: 用户Id字符串
  • metaData: 额外附加信息

示例:

const monitor = require('./agent/tingyun-mp-agent.js');
monitor.setUser('user1', {
    metaData: {
        ...
    }
})

记录自定义指标时间

在Page中调用,记录本页面自定义指标时间

this.recordTyTime()

示例:

Page({
    ...
    onReady: function () {
        wx.request({
            url: EXAMPLE_URL,
            success: (res) => {
                this.recordTyTime();
            }
        })
    },
    ...
})

上传自定义业务状态码

探针提供函数配置项 custom, 可以在其中插入自定义逻辑并返回业务状态码和成功状态, 配置函数在每个网络请求的complete 回调函数之前执行。

配置示例:

const monitor = require('./agent/tingyun-mp-agent.js');
monitor.config({
  beacon: 'https://beacon-mp.tingyun.com',
  key: '4gA5HRiCw8g',
  id: 'QpKfzsx-PGQ',
  sampleRate: 1,
  custom: function(response) {
    return {
        code: response.data.status == null ? 'NULL' : response.data.status,
        status: [1001,1002,1003].includes(response.data.status) 
    }
  }
})

函数返回对象:

{
  "code": 1001, // 返回值中的业务状态码
  "status": true // 1001被认为是业务成功状态
}
  • 注意: 当认为业务成功时(status = true), code 不能为空(undefined或null), 可以使用'NULL'字符串进行替换。

插件支持

由于使用第三方插件后, 小程序不允许重写App, Page 对象, 不允许修改官方api的定义,导致监控失效, 探针提供一种针对插件的解决方案, 需要手工调用接口, 来支持。

标识使用插件

由于App, Page, wx.request替换失败不会抛出异常, 需要在小程序探针初始化时增加配置启动插件模式

monitor.config({
  ...,
  plugin: true,
  ...
})

当plugin设置为true时, 探针会停止默认行为, 等待客户手动调用接口。

App

使用hookApp接口封装App原始参数

app.js

const monitor = require('./agent/tingyun-mp-agent.js');


App(monitor.hookApp({
    onLaunch: function() {

    },
    ...

}))

Page

使用hookPage接口封装Page原始参数

const monitor = require('./agent/tingyun-mp-agent.js');

Page(monitor.hookPage({
   onLoad: function() {

   },
   ...
}))

Component

对于使用组件构建页面的情况使用 hookComponent

const monitor = require('./agent/tingyun-mp-agent.js');

Component(monitor.hookComponent({

...
}))

网络请求

使用探针提供的接口monitor.request发送网络请求, 参数与官方的wx.request接口一致

const monitor = require('./agent/tingyun-mp-agent.js');

monitor.request({
  url: '...'
});

微信接口分析

默认情况, 探针监控requestPayment,scanCode,previewImage 三个微信接口的调用次数,成功、失败次数, 对于支付接口,还监控取消的情况。 可以通过探针初始化配置中 hookApis 指定想要监控的接口名(不需要写wx.前缀)。

注意

  1. 对于request接口,由单独的请求模块监控,此处配置将被忽略。
  2. 自定义监控接口提供success, fail 回调的情况下才能监控成功、失败次数,否则只能监控调用次数。

示例(只监控requestPayment接口):

const monitor = require('./agent/tingyun-mp-agent.js');
monitor.config({
    ...,
    hookApis: ['requestPayment']
})

忽略监控页面

当某些页面不想监控时,可以在探针启动配置中设置属性 ignoredPages, 指定具体页面。

示例:

const monitor = require('./agent/tingyun-mp-agent.js');
monitor.config({
    ...,
    ignoredPages: ['pages/index/index', 'pages/login/login'],
    ...
})

初始化探针配置属性列表

名称 类型 说明 是否必须 默认值
beacon String 探针上传服务器地址
key String 小程序应用key
id String 小程序账号key
sampleRate Number 初始化采样率 1
custom Function 上传自定义状态码和自定义状态等其他信息 null
plugin Boolean 是否启用插件支持模式, 默认false false
hookApis Array 需要监控的接口列表 ['requestPayment','scanCode','previewImage']
eventTimeout Number 操作超时时间, 毫秒值 60000
ignoredPages Array 排除监控的页面列表 []
disableFetchQuery Boolean 是否不上传App启动参数 false
ignoredPages Array 忽略页面列表 []