一、 项目介绍

项目的功能主要是面向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

    AppUsageLog

  • Web收集日志程序的编写(app-logs-collect-web)

    下面来具体的分析一下,收集日志的程序的编写首先涉及到的关键的点有

    a、修正时间

    b、基本属性复制

    c、处理ip地址问题

    d、发送log给kafka主题

1、首先为什么要进行修正时间的操作?

因为客户端上报日志的时间可能会与服务器端的时间不统一、比如昨天的日志今天才上报,日志的时间是昨天的,但是确实今天上报的,在这种情况下就要进行时间的修正,将时间修正为服务器端的时间。

2、基本属性复制是干嘛的?

它主要完成的是Log实体中公共部分属性和Log类中间属性的复制 通过反射机制

3、处理ip地址问题完成的主要是什么问题?

地理工具类,实现通过ip查找地址区域

然后发送log给kafka的主题

  • Flume在这个项目中的相关应用

最新文章

  1. tp框架之自动验证表单
  2. Javascript的自执行函数
  3. 虚拟机VMware与主机共享文件介绍
  4. ajax向后台传递数组
  5. 使用maven镜像
  6. Direct3D11学习:(九)绘制基本几何体
  7. UVa 11624,两次BFS
  8. Guide to make CentOS 7 the perfect desktop
  9. Yii2中request的使用方法
  10. RHEL7单独安装图形X11
  11. 动态设置布局LayoutInflater
  12. uva 10034 Problem A: Freckles
  13. 《Django By Example》Chap 4中出现的 “RelatedObjectDoesNotExist”错误
  14. FortiGate常用命令
  15. C# list与数组互相转换
  16. Hbuilder开发app实战-识岁03-文件上传
  17. Linux-进程间的通信-信号集函数【转】
  18. spring MVC 后台token防重复提交解决方案
  19. http://www.cnblogs.com/snake-hand/p/3206655.html
  20. linux设置开机自动启动

热门文章

  1. dhcpd:bad subnet number/mask combination. subnet
  2. Codeforces Round #744 (Div. 3) G题题解
  3. Open vSwitch 应用实践
  4. js 透明度轮播图
  5. LeetCode 199. 二叉树的右视图 C++ 用时超100%
  6. JVM启动参数详解
  7. 用js实现web端录屏
  8. Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置
  9. VS Code Java 更新 – 全新Gradle for Java插件,更方便的代码操作, 1.0 语言支持发布
  10. [cf1458C]Latin Square