npm

@hyext/hyext-reporter
TypeScript icon, indicating that this package has built-in type declarations

1.2.3 • Public • Published

小程序统一日志上报

  • @hyext/hyext-reporter
  • 负责统一小程序日志数据,不做主动上报
  • 提供全局心跳,默认 30 秒心跳一次
  • 日志延迟 500ms 上报,每次上报最多 100 条;

安装

npm install @hyext/hyext-reporter

引入

import { ExtReporter, LogEvents } from '@hyext/hyext-reporter'

实例化 - new ExtReporter(config)

config

  • 实例化配置
参数 类型 必填 默认 说明
PlatformRequest Callback -- 平台定义上报方法
CommonInfo Object -- 日志公用信息
OpenReport boolean true 是否开启上报
Debug boolean false 是否开启 debug
ReportDelay number 500 延迟上报时差(ms),0 不延迟
ReportSizeLimit number 25 每次上报大小上限(KB),0 不限制
HeartbeatFreq number 60000 心跳频率

PlatformRequest

(params) => Promise<void>

  • 日志上报方法

params

  • 日志上报回调参数
属性 类型 说明
logs log[] 上报日志数组

log

  • 上报日志信息
属性 类型 说明
eid string 事件 id
eid_desc string 事件名称
prop Object 上报数据

CommonInfo

  • 日志公共数据,每条日志的基础信息,可覆盖
参数 类型 必填 说明
ext_id string 小程序 ID
uid string 用户 ID
pid string 主播 ID
game_id string 品类 ID
env string 环境信息

env

  • 环境信息
取值 说明
unknown 未知环境
online 正式环境
test 测试环境
dev 开发环境

示例

  • 先通过平台获取基础数据
const basInfo = {
  ext_id: "abababa", // 小程序ID
  uid: "202020", // 用户uid
  pid: "202011", // 主播ID
  game_id: "1002", // 品类ID
  env: "online",
}
  • 实例化
const reporter = new ExtReporter({
  Debug: true, // 是否开启debug日志,可选
  OpenReport: true, // 是否开启上报,可选
  PlatformRequest: ({ logs }) => {
    // 上报日志数据,必填
    console.log("report logs": logs);
  },
  CommonInfo: { // 日志公共数据
    uid: basInfo.uid,
    pid: basInfo.pid,
    ext_id: basInfo.ext_id,
    game_id: basInfo.game_id,
    env: basInfo.env
  }
});

开始心跳 - reporter.startHeartBeat(fields);

  • 只有一个全局的心跳
  • 默认 30s 一次心跳
  • 心跳用于统计用户在线时长,用户进入即开始心跳即可

参数

参数 类型 必填 默认 说明
fields Object -- 日志自定义数据

示例

reporter.startHeartBeat();

停止心跳 - reporter.endHeartBeat()

  • 停止全局的心跳
  • 用户退出时调用

示例

reporter.endHeartBeat();

普通上报 - reporter.reportBusiMetric(info, fields)

参数

参数 类型 必填 默认 说明
info Object -- 日志描述,不会被 fields 覆盖
fields Object -- 日志自定义数据

info

  • 日志描述信息,不会被 fields 覆盖
  • 系统预制了一些日志描述信息 LogEvents 方便使用
  • 也可定义自己日志描述信息
参数 类型 必填 说明
key string 业务关键词
desc string 业务描述

LogEvents

  • 预制日志描述信息
  • 均为与 info 同构变量
  • 按需上报即可
变量 描述
LogEvents.USER_ACTIVE 用户互动
LogEvents.USER_SEND_GIFT 用户送礼
LogEvents.USER_SEND_WORD 用户发言
LogEvents.USER_SUBSCRIBE 用户订阅
LogEvents.USER_SHARE 用户分享
LogEvents.GAME_CREATE 游戏开局,某轮游戏开始
LogEvents.GAME_FINISH 游戏结束,某轮游戏结束

fields

  • 自定义上报数据
  • 键值不能与以下取值重复,否则会被覆盖
敏感键值 类型 说明 数据源
key string 业务关键词 info
desc string 业务描述 info
type number 日志类型 info/默认值
client_time number 日志创建时间戳 系统生成

示例

  • 自定义日志信息 info 的上报
extReporter.reportBusiMetric({
  key: 'ext_diy/my_action'
  desc: '自定义事件描述'
}, {
  data : 'your_data'
});
  • 上报用户交互
reporter.reportBusiMetric(LogEvents.USER_ACTIVE, {
  act: '啥交互?'
});
  • 上报用户送礼
reporter.reportBusiMetric(LogEvents.USER_SEND_GIFT, {
  gift_id: 2222,
  gift_count: 1,
  gift_amount: 100,
  total_pay: 0,
});
  • 上报用户发言
reporter.reportBusiMetric(LogEvents.USER_SEND_WORD, {
  word: '你说啥?'
});
  • 上报订阅主播
reporter.reportBusiMetric(LogEvents.USER_SUBSCRIBE);
  • 上报用户分享
reporter.reportBusiMetric(LogEvents.USER_SHARE, {
  share_type: 1
});
  • 上报开始游戏
reporter.reportBusiMetric(LogEvents.GAME_CREATE);
  • 上报游戏结束
reporter.reportBusiMetric(LogEvents.GAME_FINISH);

非统一日志上报 - reporter.report(base, info, fields)

  • 非统一日志上报,特殊情况下使用

参数

参数 类型 必填 默认 说明
base Object -- 日志业务信息
info Object -- 日志描述,不被 fields 覆盖
fields Object -- 日志自定义数据

base

  • 对应后统计台业务上报信息
参数 类型 必填 说明
eid string 事件 id
eid_desc string 事件名称

示例

reporter.report({
  eid: 'usr/diy/eid',
  eid_desc: '非统一上报日志'
}, {
  type: '固定信息'
}, {
  data: '上报数据',
})

清除缓存日志 - reporter.clear()

Readme

Keywords

none

Package Sidebar

Install

npm i @hyext/hyext-reporter

Weekly Downloads

0

Version

1.2.3

License

ISC

Unpacked Size

67.9 kB

Total Files

10

Last publish

Collaborators

  • hy-ext
  • wundereye
  • maizhiying
  • xiangwang123
  • zhangjiaheng
  • limingyi_100