最近项目需要一个数据收集分析的功能,做了一些调研。
目前做网络统计的方式有两大类:
1. Page Tagging, 即页面埋点;web端用js,移动端使用共用api。
2. Log file Analysis, 即log过滤分析;
两者对比如下:
web端目前主流Page Tagging框架有如下:
1. Google Analytics
基本流程:
优点:做的最好最全的,内容很强大,并且提供了很多的定制化报告。
缺点:由于我天朝的原因,GA访问不稳定。而且有延时。
2. 百度统计、腾讯TA、量子恒道、CNZZ等
全部是仿照GA。不过量子恒道后台因为使用了storm,所以可以提供实时报告,似乎是收费的。
3. 开源框架
找了半天,只有Piwik和Open Web Analytics。两个均是Php+Mysql实现。不符合我们分布式的“高大尚”……被放弃了。
不过个人感觉还是不错的,尤其他们也提供Logfile过滤处理功能。
Log File Analysis的框架数量倒是很多,但主流并不多见,因为限制很多。
1. Twitter Rainbird
N年前就号称要开源,因为使用了beta版本的内部Cassandra未能开源,至今未见!
2. Logstash + elasticsearch + Kibana 套件
新时代的“三件套”,值得一提的是三个任意都可以单独使用。Kibana的界面很赞。logstash支持很多服务器的log分析。
3. flume + 后端分析
flume等同于logstash,两者有很多相似之处。后端分析之所有没有写出来是什么,因为有太多种搭配,例如flume +kafka + storm, 甚至flume+elasticsearch+kibana都OK的。
PS:
在搜索这个资料时发现一个好东西——分布式追踪系统。国内知名的如阿里的“鹰眼”,国外twitter的Zipkin。后者已经开源(猛击这里),前者问了下阿里的哥们,明确说不会开源……囧 他们都是基于Google的Dapper论文(又见Google论文!),github上有一个原文+翻译的,share出来,猛击这里。有时间去研究一下。
移动端的数据统计分析的现况,结果令人惊讶:
1. 国外flurry 一统天下
2. 国内友盟被阿里收购,TalkingData目前市场占有率第一。其他半死不活。