@cloudcare/rum-uniapp
v2.2.0
Published
DataFlux RUM 小程序 端数据指标监控
Downloads
422
Readme
基于 uniapp 开发框架 兼容各平台小程序 DataFlux RUM 数据采集 SDK
通过引入 sdk 文件,监控小程序性能指标,错误 log,以及资源请求情况数据,上报到 DataFlux 平台 datakit
使用方法
在 uniapp 项目入口文件main.js
文件头部位置以如下方式引入代码
npm 引入(可参考 uniapp 官方npm 引入方式)
//#ifndef H5 || APP-PLUS || APP-NVUE || APP-PLUS-NVUE
const { datafluxRum } = require('@cloudcare/rum-uniapp')
// 初始化 Rum
datafluxRum.init({
datakitOrigin: 'https://datakit.xxx.com/', // 必填,Datakit域名地址 需要在微信小程序管理后台加上域名白名单
applicationId: 'appid_xxxxxxx', // 必填,dataflux 平台生成的应用ID
env: 'testing', // 选填,小程序的环境
version: '1.0.0', // 选填,小程序版本
trackInteractions: true, // 用户行为数据
})
//#endif
CDN 下载文件本地方式引入(下载地址)
//#ifndef H5 || APP-PLUS || APP-NVUE || APP-PLUS-NVUE
const { datafluxRum } = require('@cloudcare/rum-uniapp')
// 初始化 Rum
datafluxRum.init({
datakitOrigin: 'https://datakit.xxx.com/', // 必填,Datakit域名地址 需要在微信小程序管理后台加上域名白名单
applicationId: 'appid_xxxxxxx', // 必填,dataflux 平台生成的应用ID
env: 'testing', // 选填,小程序的环境
version: '1.0.0', // 选填,小程序版本
trackInteractions: true, // 用户行为数据
})
//#endif
配置
初始化参数
| 参数 | 类型 | 是否必须 | 默认值 | 描述 |
| ----------------------------------------------- | -------- | -------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| applicationId
| String | 是 | | 从 dataflux 创建的应用 ID |
| datakitOrigin
| String | 是 | | datakit 数据上报 Origin;注意:需要在小程序管理后台加上request白名单
|
| site
| String | 是(公网dataway
上报方式 必填) | | (SDK 版本要求 > 2.1.20
)公网 DataWay 对应站点的域名 注释: 协议(包括://),域名(或IP地址)[和端口号]
例如:https://www.datakit.com, http://100.20.34.3:8088 |
| clientToken
| String | 是 (公网dataway
必填) | | (SDK 版本要求 > 2.1.20
)公网 DataWay 上报所需的客户端 token,在观测云控制台创建应用时生成 |
| env
| String | 否 | | 小程序 应用当前环境, 如 prod:线上环境;gray:灰度环境;pre:预发布环境 common:日常环境;local:本地环境; |
| service
| String | 否 | | 小程序应用 服务名称,可 用于 apm 关联 tag |
| version
| String | 否 | | 小程序 应用的版本号 |
| sampleRate
| Number | 否 | 100
| 指标数据收集百分比: 100
表示全收集,0
表示不收集 |
| traceType
$\color{#FF0000}{新增}$ | Enum | 否 | ddtrace
| 与 APM 采集工具连接的请求 header 类型,目前兼容的类型包括:ddtrace
、zipkin
、skywalking_v3
、jaeger
、zipkin_single_header
、w3c_traceparent
。注: opentelemetry 支持 zipkin_single_header
,w3c_traceparent
,zipkin
三种类型 |
| traceId128Bit
$\color{#FF0000}{新增}$ | Boolean | 否 | false
| 是否以 128 位的方式生成 traceID
,与traceType
对应,目前支持类型 zipkin
、jaeger
|
| allowedTracingOrigins
$\color{#FF0000}{新增}$ | Array | 否 | []
| 允许注入 trace
采集器所需 header 头部的所有请求列表。可以是请求的 origin,也可以是是正则,origin: 协议(包括://),域名(或IP地址)[和端口号]
例如:["https://api.example.com", /https:\/\/.*\.my-api-domain\.com/]
|
| trackInteractions
| Boolean | 否 | false
| 是否开启用户行为采集 |
| isIntakeUrl
| Function | 否 | function(url) {return false}
| 自定义方法根据请求资源 url 判断是否需要采集对应资源数据,默认都采集。 返回:false
表示要采集,true
表示不需要采集 该参数 方法返回结果必须为 Boolean 类型, 否则认为是无效参数 |
注意事项
datakitOrigin
所对应的 datakit 域名必须在小程序管理后台加上 request 白名单- 目前各平台小程序在性能数据 api 暴露这块,并没有完善统一,所以导致一些性能数据并不能完善收集,比如
小程序启动
、小程序包下载
、脚本注入
等一些数据除微信平台外,都有可能会存在缺失的情况。 - 目前各平台小程序请求资源 API
uni.request
、uni.downloadFile
返回数据中profile
字段目前只有微信小程序 ios 系统不支持返回,所以会导致收集的资源信息中和 timing 相关的数据收集不全。目前暂无解决方案,request, downloadFile ;API 支持情况 trackInteractions
用户行为采集开启后,因为微信小程序的限制,无法采集到控件的内容和结构数据,所以在小程序 SDK 里面我们采取的是声明式编程,通过在 模版 里面设置 data-name 属性,可以给 交互元素 添加名称,方便后续统计是定位操作记录, 例如:
<button bindtap="bindSetData" data-name="setData">
setData
</button>