日志中间件
如何使用
LogMaker.init(callback)即为初始化完成的回调,LogMaker需要去读取配置和初始化客户端,初始化完成后可在外面调用
var LogMaker = require('../index');
LogMaker.init({'host': '106.75.98.19:2181', 'path': '/h5_flume/config', 'client_path': '/h5_flume/h5_out_net'}, function () {
// 初始化完成后才可调用
LogMaker.log_coin(1003, 1, 'role_id', 'field_name', 0, 100, 1, 'scene', 'remark', new Date().toLocaleString(), '');
LogMaker.log_login(1003, 9, 9, 'user_id', 'role_id', 'device_os', 'device_type', 'device_id', 1, 1, 'ip', null, '');
LogMaker.log_register(1003, 9, 9, 'user_id', 'role_id', 'device_os', 'device_type', 'device_id', null, '');
LogMaker.log_adv(1003, 9, 'device_id', new Date().toLocaleString(), '');
LogMaker.log_tran(order_id, 'cp_user_id', 1003, 'sp_order_id', 'sp_user_id', 0, 1003, 9,
'device_id', 'role_id', 'role_name', 0, 1, 'product_id', 1.00, 'remark', 1, new Date().toLocaleString());
});
释放资源
LogMaker.release()
目录说明
.
├── gen-nodejs # flume生成的类,通过thrift协议收集日志
├── logs # 本地日志
├── model # 接口类
├── test # 测试类
│ ├── test_client # 测试客户端可用性
│ ├── test_index # 测试中间件整体的可用性
│ ├── test_zookeeper # 测试zk集群的可用性
├── utils # 工具封装
│ ├── client_util # 客户端封装,创建、提供可用客户端、错误重连
│ ├── config # 读取zookeeper集群配置及监听
│ ├── file_util # 发送错误时写入文件和读取再次发送
│ ├── timer_util # 定时读取发送失败的日志重发
├── index # 对外提供接口
├── package.json # 依赖包
接入遇到常见问题:
- 传送过来的参数类型,是否正确,如果不正确会导致不能正常写入数据库。
- 发送测试消息每次要不一样,一样的话会被去重,导致不能写入数据库。
部分接口特别说明
字段名 | 描述 | 类型 |
---|
cp_app_id | 应用标识:100325 | int |
retail_id | 渠道标识,从1000起自由定义 | int |
game_id | 10001 | int |
device_id | 设备标识,获取不到传"" | string |
field_name | 付费:pay_gold, 免费: free_gold | string |
activated_time | 所有时间相关格式统一如"2017-8-30 17:36:13" | TIMESTAMP |
lifetime | 消费周期,如月卡30,年卡365 | int |
uptime | 从角色登录到退出的时间,没有传0 | int |
sp_order_id | 第三方的order_id | string |
pay_id | 1支付宝,2微信,获取不到传0 | int |
order_time | 订单生成时间、订单成功交易时间 | TIMESTAMP |
currency_id | RMB:1 | SMALLINT |
广告日志
字段名 | 描述 | 类型 |
---|
cp_app_id | 内容提供商应用标识 | INT |
retail_id | 渠道标识 | INT |
device_id | 设备标识 | VARCHAR(64) |
activated_time | 注册时间 | TIMESTAMP |
reserve | 保留字段 | TEXT |
虚拟币日志
- 充值RMB时获取的虚拟币日志,充值和消费都需要记录
字段名 | 描述 | 类型 |
---|
cp_app_id | 内容提供商应用标识 | int |
server_id | 区服标识 | int |
role_id | 角色标识 | string |
field_name | 虚拟币字段名称 | string |
old_val | 原始值 | int |
new_val | 目标值 | int |
lifetime | 消费周期 | int |
scene | 数值变化场景 | string |
remark | 备注 | string |
log_time | 日志时间(可选) | string |
reserve | 保留字段(可选) | string |
登录日志
字段名 | 描述 | 类型 |
---|
cp_app_id | 内容提供商应用标识 | INT |
server_id | 区服标识 | INT |
retail_id | 渠道标识 | INT |
user_id | 用户标识 | VARCHAR(36) |
role_id | 角色标识 | VARCHAR(32) |
device_id | 设备标识 | VARCHAR(64) |
device_type | 设备类型 | VARCHAR(64) |
device_os | 设备系统 | VARCHAR(32) |
uptime | 在线时长,从登陆开始的秒数 | INT |
lvl | 角色等级 | INT |
ip | 登录地址 | VARCHAR(64) |
log_time | 日志时间(可选) | string |
reserve | 保留字段(可选) | TEXT |
注册日志
字段名 | 描述 | 类型 |
---|
cp_app_id | 内容提供商应用标识 | INT |
server_id | 区服标识 | INT |
retail_id | 渠道标识 | INT |
role_id | 角色标识 | VARCHAR(32) |
user_id | 用户标识 | VARCHAR(32) |
device_id | 设备标识 | VARCHAR(64) |
device_type | 设备类型 | VARCHAR(64) |
device_os | 设备系统 | VARCHAR(32) |
log_time | 日志时间(可选) | string |
reserve | 保留字段(可选) | TEXT |
订单日志
字段名 | 描述 | 类型 |
---|
cp_order_id | 内容提供商订单标识 | VARCHAR(36) |
cp_user_id | 内容提供商用户标识 | VARCHAR(32) |
cp_app_id | 内容提供商应用标识 | INT |
sp_order_id | 服务提供商订单标识 | VARCHAR(127) |
sp_user_id | 服务提供商用户标识 | VARCHAR(64) |
game_id | 游戏标识 | INT |
server_id | 区服标识 | INT |
retail_id | 渠道标识 | INT |
device_id | 设备标识 | VARCHAR(64) |
role_id | 角色标识 | VARCHAR(32) |
role_name | 角色名称 | VARCHAR(32) |
pay_id | 用户支付方式标识 | SMALLINT |
order_time | 订单时间 | TIMESTAMP |
currency_id | 币种 | SMALLINT |
product_id | 购买项标识 | VARCHAR(64) |
amount | 充值金额 | DECIMAL(10,2) |
remark | 备注 | TEXT |
is_success | 订单同步状态(1成功,0失败) | INT |
reserve | 保留字段(可选) | TEXT |