1.2.3 • Published 2 years ago
@hyext/hyext-reporter v1.2.3
小程序统一日志上报
- @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\
- 日志上报方法
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()
1.2.2-beta.2
2 years ago
1.2.3
2 years ago
1.2.2-beta.1
2 years ago
1.2.2-beta.0
4 years ago
1.2.0
4 years ago
1.0.17
4 years ago
1.0.17-beta.0
4 years ago
1.2.1
4 years ago
1.2.1-beta.0
4 years ago
1.0.16
4 years ago
1.0.16-beta.0
4 years ago
1.0.15
4 years ago
1.0.13
4 years ago
1.0.12-beta.3
4 years ago
1.0.12-beta.2
4 years ago
1.0.12-beta.1
4 years ago
1.0.12
4 years ago
1.0.11-beta.0
4 years ago
1.0.11-beta.1
4 years ago
1.0.11
4 years ago
1.0.12-beta.0
4 years ago
1.0.10-beta.0
4 years ago
1.0.10
4 years ago
1.0.3-beta.0
4 years ago
1.0.9
4 years ago
1.0.7
4 years ago
1.0.6
4 years ago
1.0.5
4 years ago
1.0.7-beta.1
4 years ago
1.0.7-beta.0
4 years ago
1.0.2
4 years ago
1.0.2-beta.1
4 years ago
1.0.2-beta.0
4 years ago
1.0.1
4 years ago
1.0.0
4 years ago
0.1.6-beta.0
4 years ago
0.1.4-beta.0
4 years ago
0.1.1-beta.1
4 years ago