2.2.3 • Published 7 years ago
stat-table v2.2.3
stat-table
服务器端用户留存统计的简易框架
模块暂时只支持日留存统计,后续可能会加入周留存率的计算。如果用户数庞大,建议将留存数据放在单独的redis服务器上,减少生成统计数据过程中可能对业务服务器造成的冲击。
依赖环境
node v4.x
redis v3.2.x
示例
使用模块
导出对象供使用,写在一个公用文件中,比如common/stat.js
const StatTable = require('stat-table');
const stat = new StatTable({host, port, db});//es6的写法,连接redis的配置信息
module.exports = stat;
注入代码
在注册和登录的地方分别调用相关的记录函数
stat.recordRegister(userId);//注册
stat.recordLogin(userId);//登录
每日统计
设置一个定时任务,在每天23点55分左右执行以下函数,date为可选的日期字符串,格式为YYYYMMDD,不提供该参数时默认取当天
stat.genMultiDayRetention(date, (err) => {});
导出结果
导出文件为csv格式,dirPath为文件路径;days是希望导出的最长多少天的留存率。例如,days为10,则会导出注册日之后10天的登录留存情况。
stat.exportRetention(dirPath, days, (err) => {});
结果格式
其它功能
//baseDate均表示指定日期,格式为YYYYMMDD
//获取在指定日期注册,并在指定天数之后依然留存的用户id,afterNum为指定的天数
stat.getRetentionUserIds(baseDate, afterNum, (err, userIds) => {});
//获取在指定日期注册的用户id
stat.getRegisterUserIds(baseDate, (err, userIds) => {});
//获取在指定日期登录的用户id
stat.getLoginUserIds(baseDate, (err, userIds) => {});