Datakit Miniprogram Uniapp Save

Based uniapp framework, compatible with the DataFlux RUM data collection SDK of various platforms

Project 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白名单
env String 小程序 应用当前环境, 如 prod:线上环境;gray:灰度环境;pre:预发布环境 common:日常环境;local:本地环境;
version String 小程序 应用的版本号
sampleRate Number 100 指标数据收集百分比: 100表示全收集,0表示不收集
traceType $\color{#FF0000}{新增}$ Enum ddtrace 与 APM 采集工具连接的请求header类型,目前兼容的类型包括:ddtracezipkinskywalking_v3jaegerzipkin_single_headerw3c_traceparent注: opentelemetry 支持 zipkin_single_header,w3c_traceparent,zipkin三种类型
traceId128Bit $\color{#FF0000}{新增}$ Boolean false 是否以128位的方式生成 traceID,与traceType 对应,目前支持类型 zipkinjaeger
allowedTracingOrigins $\color{#FF0000}{新增}$ Array [] 允许注入 trace 采集器所需header头部的所有请求列表。可以是请求的origin,也可以是是正则,origin: 协议(包括://),域名(或IP地址)[和端口号] 例如:["https://api.example.com", /https:\/\/.*\.my-api-domain\.com/]
trackInteractions Boolean false 是否开启用户行为采集

注意事项

  1. datakitOrigin 所对应的datakit域名必须在小程序管理后台加上request白名单
  2. 目前各平台小程序在性能数据api暴露这块,并没有完善统一,所以导致一些性能数据并不能完善收集,比如小程序启动小程序包下载脚本注入 等一些数据除微信平台外,都有可能会存在缺失的情况。
  3. 目前各平台小程序请求资源APIuni.requestuni.downloadFile返回数据中profile字段目前只有微信小程序ios系统不支持返回,所以会导致收集的资源信息中和timing相关的数据收集不全。目前暂无解决方案,request, downloadFile ;API支持情况
  4. trackInteractions 用户行为采集开启后,因为微信小程序的限制,无法采集到控件的内容和结构数据,所以在小程序 SDK 里面我们采取的是声明式编程,通过在 模版 里面设置 data-name 属性,可以给 交互元素 添加名称,方便后续统计是定位操作记录, 例如:
 <button bindtap="bindSetData" data-name="setData">setData</button>
Open Source Agenda is not affiliated with "Datakit Miniprogram Uniapp" Project. README Source: GuanceCloud/datakit-miniprogram-uniapp
Stars
32
Open Issues
0
Last Commit
2 years ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating