1.0.0 • Published 7 years ago

flume_client_sdk v1.0.0

Weekly downloads
4
License
ISC
Repository
gitlab
Last release
7 years ago

日志中间件

如何使用

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              # 依赖包

接入遇到常见问题:

  1. 传送过来的参数类型,是否正确,如果不正确会导致不能正常写入数据库。
  2. 发送测试消息每次要不一样,一样的话会被去重,导致不能写入数据库。

部分接口特别说明

字段名描述类型
cp_app_id应用标识:100325int
retail_id渠道标识,从1000起自由定义int
game_id10001int
device_id设备标识,获取不到传""string
field_name付费:pay_gold, 免费: free_goldstring
activated_time所有时间相关格式统一如"2017-8-30 17:36:13"TIMESTAMP
lifetime消费周期,如月卡30,年卡365int
uptime从角色登录到退出的时间,没有传0int
sp_order_id第三方的order_idstring
pay_id1支付宝,2微信,获取不到传0int
order_time订单生成时间、订单成功交易时间TIMESTAMP
currency_idRMB:1SMALLINT

广告日志

字段名描述类型
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