跳转至

小程序日志采集


小程序主动发送不同等级的日志数据(对应的 source:browser_log 指标类型日志数据)到观测云

功能简介

  • 自定义日志数据采集,通过 SDK 接入客户端应用中,针对不同场景采集不同日志数据;
  • 自动收集应用端的错误信息(包括网络错误,console 错误,以及 js 错误)上报到 DataFlux;
  • 自定义错误等级(debug,critical,error,info,warn)、自定义 Logger 对象及自定义 Log 字段;
  • 自动收集 RUM 相关数据,关联 RUM 业务场景(需要 rum,sdk 更新到最新版本)。

开始使用

前置条件

  • 引入 SDK:可通过 NPM,CDN 的方式引入 SDK 到应用中,初始化后,可以存放到全局变量中,方便其他页面引用;

  • 支持小程序客户端:微信,百度,支付宝,头条等大部分小程序端。

接入方式

  1. 确保 DataKit 已安装并配置为公网可访问,并安装 IP 地理信息库
  2. 在控制台获取 applicationIdenvversion 等参数,开始接入应用
  3. 集成 SDK 时,将 datakitOrigin 设置为 DataKit 的域名或 IP。

  1. 在控制台获取 applicationIdclientTokensite 等参数,开始接入应用
  2. 集成 SDK 时无需配置 datakitOrigin,数据将默认发送到公网 DataWay。

NPM 引入

//#ifndef H5 || APP-PLUS || APP-NVUE || APP-PLUS-NVUE
const { datafluxLogs } = require('@cloudcare/dataflux-rum-miniapp-logs')
// 初始化 Rum
datafluxLogs.init({
  datakitOrigin: '<DATAKIT ORIGIN>'
  site: "http://172.16.212.186:9529", // 公网 DataWay 对应站点的域名
  clientToken: "a993f53a8ea04bc6b9350e5e670a3a3b", //公网 DataWay 上报所需的客户端 token
  service: 'minapp',
  env: 'prod',
  version: '1.0.0'
})
//#endif

CDN 下载文件本地方式引入(下载地址)

//#ifndef H5 || APP-PLUS || APP-NVUE || APP-PLUS-NVUE
const { datafluxLogs } = require('@cloudcare/dataflux-rum-miniapp-logs')
// 初始化 Rum
datafluxLogs.init({
    datakitOrigin: '<DATAKIT ORIGIN>'
  service: 'miniapp',
  env: 'prod',
  version: '1.0.0'
})
//#endif

配置

初始化参数

参数 类型 是否必须 默认值 描述
datakitOrigin String DataKit 数据上报 Origin 注释: 协议(包括://),域名(或IP地址)[和端口号]
例如:https://www.datakit.com, http://100.20.34.3:8088
clientToken String 以 openway 方式上报数据令牌,从观测云控制台获取,必填(公共 openway 方式接入)。
site String 以 公共 openway 方式上报数据地址,从观测云控制台获取,必填(公共 openway 方式接入)。
service String browser 日志 Service 名称
env String Web 应用当前环境, 如 Prod:线上环境;Gray:灰度环境;Pre:预发布环境 Common:日常环境;Local:本地环境;
version String Web 应用的版本号
sampleRate Number 100 指标数据收集百分比: 100 表示全收集,0 表示不收集
forwardErrorsToLogs Boolean true 设置为 false 表示停止采集 console.error、 js、以及网络错误上报到 DataFlux 日志数据中

使用

SDK 在应用中初始化后,通过暴露的 SDK API 可以自定义配置日志数据。

logger.debug | info | warn | error | critical (message: string, messageContext = Context)

NPM

import { datafluxLogs } from "@cloudcare/dataflux-rum-miniapp-logs"

datafluxLogs.logger.info("Button clicked", { name: "buttonName", id: 123 })

返回数据结构

{
  "service": "miniapp",
  "session": {
    "id": "c549c2b8-4955-4f74-b7f8-a5f42fc6e79b"
  },
  "type": "logger",
  "_dd": {
    "sdk_name": "miniapp LOG SDK",
    "sdk_version": "1.0.0",
    "env": "",
    "version": ""
  },
  "device": {
    "platform_version": "8.0.5",
    "model": "iPhone 6/7/8 Plus",
    "app_framework_version": "2.23.3",
    "os": "OS",
    "os_version": "10.14.6",
    "os_version_major": "10",
    "screen_size": "414*736",
    "network_type": "3g",
    "divice": "devtools"
  },
  "user": {},
  "date": 1621321916756,
  "view": {
    "referrer": "",
    "name": "pages/index/index",
    "id": "5dce64f4-8d6d-411a-af84-c41653ccd94a"
  },
  "application": {
    "id": "app_idxxxxxx"
  },
  "message": "XHR error get http://testing-ft2x-api.cloudcare.cn/api/v1/workspace/xxx",
  "status": "error",
  "error": {
    "source": "network",
    "stack": "Failed to load"
  },
  "resource": {
    "method": "get",
    "status": 0,
    "status_group": 0,
    "url": "http://testing-ft2x-api.cloudcare.cn/api/v1/workspace/xxx",
    "url_host": "testing-ft2x-api.cloudcare.cn",
    "url_path": "/api/v1/workspace/xxx",
    "url_path_group": "/api/?/workspace/xxx"
  }
}

Status 参数

初始化 SDk 后,可以使用提供 log API,定义不同类型的状态。

log (message: string, messageContext: Context, status? = 'debug' | 'info' | 'warning' | 'error' | 'critical')

使用

import { datafluxLogs } from '@cloudcare/dataflux-rum-miniapp-logs'

datafluxLogs.logger.log(<MESSAGE>,<JSON_ATTRIBUTES>,<STATUS>);

参数说明

参数 描述
<MESSAGE> Dataflux 日志中的 Message 字段。
<JSON_ATTRIBUTES> 描述 Message 的额外数据,是一个 Json 对象。
<STATUS> 日志的等级,可选值:debug, info, warning, error, critical

文档评价

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