美文网首页
开源数据统计平台 -- GoAnalytics

开源数据统计平台 -- GoAnalytics

作者: Tao_Liang | 来源:发表于2019-05-19 16:43 被阅读0次

本项目用于移动端的数据统计,项目地址:https://github.com/lt90s/goanalytics。开源的数据统计countly做的很好,但是基础免费版的功能实在不够看,因此我就决定用go语言来写了这个项目,一来可以在实践中学习go语言,二来也可以开发功能完整的开源平台。该项目正在开发中,欢迎有兴趣的gopher一起参与。

数据存储方面使用的是mongodb。由于数据统计业务几乎不涉及到事务以及严格的一致性场景,而且mongodb的自动分片功能可以支撑较大的数据量。使用大数据的存储组件的话就太过于重了。因此选用mongodb。

业务逻辑整体基于事件的发布订阅。当收到客户端请求,frontend会对请求数据进行处理,然后发布响应的事件。backend收到事件后进行统计处理。

后台展示基于Vue-Admin-Template开发,本人前端能力基本就是依葫芦画瓢,希望有前端大神来开发后台页面,项目地址: https://github.com/lt90s/goanalytics-web

目前客户端API仅有2个。一个是上报openApp打开APP时间,一个是上报usageTime一次启动使用时长事件。SDK方面也需要移动端的大神开发,感兴趣的大佬可以一起开发。

下面放一点后台页面的效果图:

useFrequency.png userIncrease.png userRetention.png customize.png

项目介绍

GoAnalytics是基于go实现的一个数据统计平台,用于统计移动端的数据指标,比如启动次数、用户增长、活跃用户、留存等指标分析。前端数据展示项目是 goanalytics-web。目前正在积极开发中,欢迎提交新的需求和pull request。

summary.png

特性

  • 数据实时分析展示
  • 用户相关基本指标:增长、留存、活跃、启动等
  • 渠道、平台、版本交叉对比
  • 自定义事件统计
  • 轻量

构建

Go版本需要支持module,本地开发测试

# 开启mongodb

git clone https://github.com/lt90s/goanalytics
cd goanalytics
go get -v

# 创建管理员账号
cd cmd/account
go build
./account

# 启动goanalytics-web项目,参考 https://github.com/lt90s/goanalytics-web
# 登录管理员账号创建新应用会生成 AppId


# 生成测试数据
cd cmd/test_data
go build
./test_data -appId AppId (上一步中生成的AppId)

# 现在就可以在浏览器中看到数据展示

cmd/goanalytics_kafkagoanalytics_rmq是分别基于kafkarocketmq的发布订阅功能做的数据发布
和订阅处理,横向扩展能力比local高。另外由于rocketmq还没有原生基于go的客户端(原生客户端正在开发中
2.0.0 road map),可能会存在问题。

开发

项目结构

├── README.md
├── api
│ ├── authentication 用户认证、管理API
│ ├── middlewares GIN 中间件
│ └── router API route
├── cmd
│ ├── account 生成admin账号命令
│ ├── analytic_local 不依赖消息系统的goanalytics
│ ├── goanalytics_kafka 基于kafak的goanalytics
│ ├── goanalytics_rmq 基于rocketmq的goanalytics
│ └── test_data 生成测试数据命令
├── common
│ └── data.go
├── conf 配置
│ └── conf.go
├── event
│ ├── codec 数据编解码
│ └── pubsub 消息发布订阅
├── go.mod
├── go.sum
├── metric 所有的统计指标在这里实现
│ ├── init.go
│ └── user 用户相关指标的实现
├── schedule
│ └── schedule.go 定时任务调度
├── storage 存储模块
│ ├── counter.go 计数器接口
│ ├── data.go
│ └── mongodb 基于mongodb实现的存储及计数器
└── utils
├── date.go
├── date_test.go
├── errors.go
└── key.go

相关文章

  • 开源数据统计平台 -- GoAnalytics

    本项目用于移动端的数据统计,项目地址:https://github.com/lt90s/goanalytics。开...

  • R语言编程指南(异步图书).epub

    【下载地址】 R 是一个开源、跨平台的科学计算和统计分析软件包,它提供了丰富多样的统计功能和强大的数据分析功能。随...

  • 【TensorFlow实战——笔记】第2章:TensorFlow

    2.1 主流深度学习框架对比 各个开源框架在Github上的数据统计 数据统计截止于2017.07.15 可以看到...

  • App业务数据统计

    App业务数据统计包括:展示、点击、新增、日活、异常等 目前用的比较多的是ELK——开源实时日志分析ELK平台由E...

  • APP数据统计调研

    数据统计平台调研报告 一、调研目的 目前有多种APP应用数据统计平台,如友盟、腾讯移动分析、Cobub Razor...

  • 《经济社会大数据研究平台》Q&A

    Q1、“中国经济社会大数据研究平台”、“中国统计大数据分析平台”与“中国经济与社会发展统计数据库”的关系。 A:(...

  • Grafana起步

    简介 Grafana 是一个开源的时序性统计和监控平台,支持例如 elasticsearch、graphite、i...

  • JS框架安全报告:jQuery下载次数超过1.2亿次

    尽管 JavaScript 库 jQuery 仍被使用,但它已不再像以前那样流行。根据开源安全平台 Snyk 统计...

  • 大数据统计平台

    目的 提供业务数据计算分析平台 设计 组件 1. 日志服务 1.1 日志收集格式(json) {app:"应用标识...

  • centos7安装grafana

    grafana简介 grafana是一个开源的时序性统计和监控平台,支持例如prometheus、zabbix、M...

网友评论

      本文标题:开源数据统计平台 -- GoAnalytics

      本文链接:https://www.haomeiwen.com/subject/wodqzqtx.html