applogs流量数据项目学习
2024-10-19 17:18:48
一、 项目介绍
项目的功能主要是面向App开发商提供App使用情况的统计服务 主要是基于用户启动app的统计分析,app只要启动就会上报一条日志记录 (启动日志),当然也会有其他的日志比如说页面访问日志、错误日志等
源码参考github: https://github.com/CodeTxp/appLogsPro1
二、完成的工作效果主要有
- 统计App(一段时间)新增用户的数目 如:一周内的每天的新增用户数目 五周内每周的新增用户数目等等
- 统计App(某段时间)的活跃用户:就是指定时间段内打开过app的用户
- 统计App的沉默用户数量 比如两天内没有启动过app 的用户就算是沉默用户
- 统计App的各个版本的新增用户、活跃用户、启动次数(或者叫版本分布)
- 统计App的回流用户 如本周回流用户指的是:上周没有启动而本周启动的用户
- 统计App连续n周活跃用户数目(连续n周 每周至少启动一次)
- 统计App忠诚用户的数目(比如定义为连续5周以上活跃的用户为忠诚用户)
- 统计App近期流失用户(比如定义为连续n(2<=n<=4)周没有启动的用户)
- 统计App留存用户数目 某一段时间的新增用户,经过一段时间后,仍然是app的用户
- 统计用户新鲜度 比如定义每天启动app的新老用户比例
三、涉及到的技术以及架构
java hadoop hive flume kafka ssm框架
技术框架
四、实现
公共模块的实现 (app-analyze-common模块):包括相关的日志实体
AppBaseLog
AppErrorLog
AppEventLog
AppLogEntity
AppPageLog
AppStartupLog
AppUsageLogWeb收集日志程序的编写(app-logs-collect-web)
下面来具体的分析一下,收集日志的程序的编写首先涉及到的关键的点有a、修正时间
b、基本属性复制
c、处理ip地址问题
d、发送log给kafka主题
1、首先为什么要进行修正时间的操作?
因为客户端上报日志的时间可能会与服务器端的时间不统一、比如昨天的日志今天才上报,日志的时间是昨天的,但是确实今天上报的,在这种情况下就要进行时间的修正,将时间修正为服务器端的时间。
2、基本属性复制是干嘛的?
它主要完成的是Log实体中公共部分属性和Log类中间属性的复制 通过反射机制
3、处理ip地址问题完成的主要是什么问题?
地理工具类,实现通过ip查找地址区域
然后发送log给kafka的主题
- Flume在这个项目中的相关应用
最新文章
- tp框架之自动验证表单
- Javascript的自执行函数
- 虚拟机VMware与主机共享文件介绍
- ajax向后台传递数组
- 使用maven镜像
- Direct3D11学习:(九)绘制基本几何体
- UVa 11624,两次BFS
- Guide to make CentOS 7 the perfect desktop
- Yii2中request的使用方法
- RHEL7单独安装图形X11
- 动态设置布局LayoutInflater
- uva 10034 Problem A: Freckles
- 《Django By Example》Chap 4中出现的 “RelatedObjectDoesNotExist”错误
- FortiGate常用命令
- C# list与数组互相转换
- Hbuilder开发app实战-识岁03-文件上传
- Linux-进程间的通信-信号集函数【转】
- spring MVC 后台token防重复提交解决方案
- http://www.cnblogs.com/snake-hand/p/3206655.html
- linux设置开机自动启动
热门文章
- dhcpd:bad subnet number/mask combination. subnet
- Codeforces Round #744 (Div. 3) G题题解
- Open vSwitch 应用实践
- js 透明度轮播图
- LeetCode 199. 二叉树的右视图 C++ 用时超100%
- JVM启动参数详解
- 用js实现web端录屏
- Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置
- VS Code Java 更新 – 全新Gradle for Java插件,更方便的代码操作, 1.0 语言支持发布
- [cf1458C]Latin Square