小程序统一日志上报
- @hyext/hyext-reporter-ya
- 负责统一小程序日志数据
- 主要用于搭载了YA 上报 小程序 H5 产品
- 需要传入小程序相关端基础信息 CommonInfo
- 提供全局心跳,默认 30 秒心跳一次
- 日志延迟 500ms 上报,每次上报最多 100 条;
安装
npm install @hyext/hyext-reporter-ya
引入
import { YAExtReporter, LogEvents } from '@hyext/hyext-reporter-ya'
初始化 - new YAExtReporter(config)
配置 config
参数 |
类型 |
必填 |
默认 |
说明 |
CommonInfo |
Object |
是 |
-- |
日志公用信息 |
YAInstance |
YA |
是 |
window.ya |
YA 上报实例 |
OpenReport |
boolean |
否 |
true |
是否开启上报 |
Debug |
boolean |
否 |
false |
是否开启 debug |
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 extReporter = new YAExtReporter({
Debug: true,
OpenReport: true,
CommonInfo: {
uid: basInfo.uid,
pid: basInfo.pid,
ext_id: basInfo.ext_id,
game_id: basInfo.game_id
env: basInfo.env
},
YAInstance: window.ya
});
开始心跳 - extReporter.startHeartBeat(fields);
- 只有一个全局的心跳
- 默认 30s 一次心跳
- 心跳用于统计用户在线时长,用户进入即开始心跳即可
参数
参数 |
类型 |
必填 |
默认 |
说明 |
fields |
Object |
否 |
-- |
自定义上报数据 |
示例
extReporter.startHeartBeat();
停止心跳 - extReporter.endHeartBeat()
示例
extReporter.endHeartBeat();
普通上报 - extReporter.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 |
日志创建时间戳 |
系统生成 |
示例
extReporter.reportBusiMetric({
key: 'ext_diy/my_action'
desc: '自定义事件描述'
}, {
data : 'your_data'
});
extReporter.reportBusiMetric(LogEvents.USER_ACTIVE, {
act: '啥交互?'
});
extReporter.reportBusiMetric(LogEvents.USER_SEND_GIFT, {
gift_id: 2222,
gift_count: 1,
gift_amount: 100
});
extReporter.reportBusiMetric(LogEvents.USER_SEND_WORD, {
word: '你说啥?'
});
extReporter.reportBusiMetric(LogEvents.USER_SUBSCRIBE);
extReporter.reportBusiMetric(LogEvents.USER_SHARE, {
share_type: 1
});
extReporter.reportBusiMetric(LogEvents.GAME_CREATE);
extReporter.reportBusiMetric(LogEvents.GAME_FINISH);