跳转至

小程序应用接入


通过引入 SDK 文件,收集小程序应用的性能指标、错误日志和资源请求数据,并上报到观测云平台,以可视化方式分析小程序应用的性能。

前置条件

注意

若已开通 RUM Headless 服务,前置条件已自动配置,可直接接入应用。

应用接入

  1. 进入用户访问监测 > 新建应用 > 小程序
  2. 输入应用名称;
  3. 输入应用 ID;
  4. 选择应用接入方式:

    • 公网 DataWay:直接接收 RUM 数据,无需安装 DataKit 采集器。
    • 本地环境部署:满足前置条件后接收 RUM 数据。

使用方法

在小程序的 app.js 文件以如下方式引入代码:

注意:引入位置需要在 App() 初始化之前。

NPM 包引入方式可参考微信官方 npm 引入方式

const { datafluxRum } = require('@cloudcare/rum-miniapp')
// 初始化 Rum
datafluxRum.init({
  datakitOrigin: '<DATAKIT ORIGIN>',// 必填,Datakit域名地址 需要在微信小程序管理后台加上域名白名单
  applicationId: '<应用 ID>', // 必填,dataflux 平台生成的应用ID
  env: 'testing', // 选填,小程序的环境
  version: '1.0.0', // 选填,小程序版本
  service: 'miniapp', //当前应用的服务名称
  trackInteractions: true,
  traceType: 'ddtrace', // 非必填,默认为ddtrace,目前支持 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent 6种类型
  allowedTracingOrigins: ['https://api.example.com',/https:\/\/.*\.my-api-domain\.com/],  // 非必填,允许注入trace采集器所需header头部的所有请求列表。可以是请求的origin,也可以是正则
})

下载文件本地方式引入

const { datafluxRum } = require('./lib/dataflux-rum-miniapp.js')
// 初始化 Rum
datafluxRum.init({
  datakitOrigin: '<DATAKIT ORIGIN>',// 必填,Datakit域名地址 需要在微信小程序管理后台加上域名白名单
  applicationId: '<应用 ID>', // 必填,dataflux 平台生成的应用ID
  env: 'testing', // 选填,小程序的环境
  version: '1.0.0', // 选填,小程序版本
  service: 'miniapp', //当前应用的服务名称
  trackInteractions: true,
  traceType: 'ddtrace', // 非必填,默认为ddtrace,目前支持 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent 6种类型
  allowedTracingOrigins: ['https://api.example.com',/https:\/\/.*\.my-api-domain\.com/],  // 非必填,允许注入trace采集器所需header头部的所有请求列表。可以是请求的origin,也可以是正则
})

配置

初始化参数

参数 类型 是否必须 默认值 描述
applicationId String 从观测云创建的应用 ID。
datakitOrigin String DataKit 数据上报 Origin;
⚠ 需要在小程序管理后台加上 request 白名单。
env String 小程序应用当前环境,如 prod:线上环境;gray:灰度环境;pre:预发布环境;common:日常环境;local:本地环境。
version String 小程序应用的版本号。
service String 当前应用的服务名称,默认为 miniapp,支持自定义配置。
sampleRate Number 100 指标数据收集百分比:100 表示全收集,0 表示不收集。
trackInteractions Boolean false 是否开启用户行为采集。
traceType Enum ddtrace 配置链路追踪工具类型,如果不配置默认为 ddtrace。目前支持 ddtracezipkinskywalking_v3jaegerzipkin_single_headerw3c_traceparent 6 种数据类型。
⚠
1. opentelemetry 支持 zipkin_single_headerw3c_traceparentzipkinjaeger 4 种类型。
2. 配置相应类型的 traceType 需要对相应的 API 服务 设置不同的 Access-Control-Allow-Headers,可参考 APM 如何关联 RUM
traceId128Bit Boolean false 是否以 128 字节的方式生成 traceID,与traceType 对应,目前支持类型 zipkinjaeger
allowedTracingOrigins Array [] 【新增】允许注入 ddtrace 采集器所需 header 头部的所有请求列表。可以是请求的 origin,也可以是正则,origin:协议(包括://),域名(或IP地址)[和端口号]例如:["https://api.example.com", /https:\\/\\/.*\\.my-api-domain\\.com/]
isIntakeUrl Function function(url) {return false} 自定义方法根据请求资源 url 判断是否需要采集对应资源数据,默认都采集。返回:false 表示要采集,true 表示不需要采集。
⚠
1. 该参数方法返回结果必须为 Boolean 类型,否则认为是无效参数。
2. 版本要求为 2.1.10 及以上。

注意

  1. datakitOrigin 所对应的 DataKit 域名必须在小程序管理后台加上 request 白名单。
  2. 因为目前微信小程序请求资源 API wx.requestwx.downloadFile 返回数据中 profile 字段目前 ios 系统不支持返回,所以会导致收集的资源信息中和 timing 相关的数据收集不全。目前暂无解决方案:requestdownloadFileAPI 支持情况
  3. trackInteractions 用户行为采集开启后,因为微信小程序的限制,无法采集到控件的内容和结构数据,所以在小程序 SDK 里面我们采取的是声明式编程,通过在 wxml 文件里面设置 data-name 属性,可以给交互元素添加名称,方便后续统计是定位操作记录, 例如:
 <button bindtap="bindSetData" data-name="setData">setData</button>

文档评价

文档内容是否对您有帮助? ×