V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
hooopo
V2EX  ›  分享创造

我也写了一个开源的 Google Analytics

  •  9
     
  •   hooopo ·
    hooopo · 2021-03-04 15:47:49 +08:00 · 9705 次点击
    这是一个创建于 1346 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上次分享了一些对 Google Analytics 的想法 计划实现一个可以私有部署的 Google Analytics,经过几个月的尝试,终于把原型写完了。目前只是最简单的功能,后面会加一些杀手级特性...

    Hypercable Analytics is a fully featured high performance scalable, open source, standalone deployable alternative to Google Analytics, build with timescaledb openresty redis and rails.

    screenshot

    demo site

    benchmark

    用一台 6C 的云服务器测试过,大概可以处理 15k rps,有时间可以再做一些优化,和开源竞品比较一下。

    一些 roadmap

    • 更多的内置可视化报表
    • 内置的类似 metabase 的界面和 SQL 自定义探索功能
    • 电商模块的 UI (目前数据结构已经支持)
    66 条回复    2021-04-11 16:47:39 +08:00
    codespots
        1
    codespots  
       2021-03-04 17:07:36 +08:00
    不错不错,感觉良好
    hooopo
        2
    hooopo  
    OP
       2021-03-04 17:14:33 +08:00 via Android
    @codespots 等把功能完善一下做个横向比较
    towry
        3
    towry  
       2021-03-04 17:32:34 +08:00
    demo 的密码是啥
    learningman
        4
    learningman  
       2021-03-04 17:37:30 +08:00 via Android
    扫了一眼,准备写一条规则给 adblock
    hooopo
        5
    hooopo  
    OP
       2021-03-04 17:37:59 +08:00 via Android
    @towry [email protected] 密码 111111
    hooopo
        6
    hooopo  
    OP
       2021-03-04 17:38:39 +08:00 via Android
    @learningman 怎么写?可以 cname 成自己的域名哇
    est
        7
    est  
       2021-03-04 18:17:42 +08:00   ❤️ 2
    LZ 动手能力真强。
    guyskk0x0
        8
    guyskk0x0  
       2021-03-04 18:36:08 +08:00 via Android   ❤️ 2
    看界面还以为是 https://plausible.io/ ,太像了。
    hooopo
        9
    hooopo  
    OP
       2021-03-04 18:38:46 +08:00 via Android
    @guyskk0x0 抄了点 ui😂 不过后面功能上一定有很大差异
    shunia
        10
    shunia  
       2021-03-04 18:40:10 +08:00
    能不能支持 url 参数自动参与统计(或者至少可以计数,用户选择过滤或者筛选条件统计)?比如 a=1&b=2,a 和 b 可以像 utm_ 参数一样作为一个统计项。
    每次新项目用 ga 我都在想怎么才能不用为 url 参数手动打点。。。
    guyskk0x0
        11
    guyskk0x0  
       2021-03-04 18:40:57 +08:00 via Android
    @hooopo 不错,已⭐
    yesmeck
        12
    yesmeck  
       2021-03-04 18:42:03 +08:00
    炮哥高产似母猪
    hooopo
        13
    hooopo  
    OP
       2021-03-04 18:42:53 +08:00 via Android
    @shunia 好建议 这个可以做!
    hooopo
        14
    hooopo  
    OP
       2021-03-04 18:43:17 +08:00 via Android
    @yesmeck 母猪会上树
    hooopo
        15
    hooopo  
    OP
       2021-03-04 18:43:31 +08:00 via Android
    @guyskk0x0 感谢!!
    shunia
        16
    shunia  
       2021-03-04 18:45:04 +08:00
    @shunia #9 不在意那些花里胡哨的界面,我只求能有一个普通人用起来不费脑子的统计功能。
    在 ga 上做一点稍微自定义的数据统计可老费劲了,产品、策划甚至都不愿意用。
    hooopo
        17
    hooopo  
    OP
       2021-03-04 18:50:47 +08:00 via Android   ❤️ 1
    @shunia 打算开放自定义查询 但需要会 sql 这个门槛有点高
    songhuangcn
        18
    songhuangcn  
       2021-03-04 20:57:14 +08:00
    高产大佬
    Showfom
        19
    Showfom  
       2021-03-04 21:34:37 +08:00   ❤️ 1
    这后台的 UI 布局分布和同类型产品 umami 也太像了吧

    https://github.com/mikecao/umami
    https://umami.is/
    hooopo
        20
    hooopo  
    OP
       2021-03-04 21:39:14 +08:00
    @Showfom 和 umami 没有关系哇 抄了点 plausible 的 ui umami 功能有点弱
    ashong
        21
    ashong  
       2021-03-04 21:41:50 +08:00
    厉害

    和 matomo 比性能如何?
    Showfom
        22
    Showfom  
       2021-03-04 21:41:57 +08:00
    @hooopo 对 功能比较弱
    hooopo
        23
    hooopo  
    OP
       2021-03-04 21:44:59 +08:00
    @ashong 和 matomo 比性能?闭眼睛写都比 matomo 快吧
    hooopo
        24
    hooopo  
    OP
       2021-03-04 21:45:34 +08:00
    @Showfom 感觉性能也不会好 mysql 存储 collector 是 nodejs 的
    Showfom
        25
    Showfom  
       2021-03-04 22:03:03 +08:00
    @ashong Matomo 有啥性能= = 访问量一大后台卡的和屎一样
    fwee
        26
    fwee  
       2021-03-04 22:42:29 +08:00   ❤️ 1
    太高产了
    LittleYangYang
        27
    LittleYangYang  
       2021-03-04 23:06:55 +08:00
    不错不错
    PS: 地图里面中国好像少了一个岛.....
    hooopo
        28
    hooopo  
    OP
       2021-03-04 23:14:10 +08:00
    @LittleYangYang 国家或地区。。。
    eason1874
        29
    eason1874  
       2021-03-05 10:06:35 +08:00
    用了 OpenResty,如果同时在 log_by_lua 阶段实现服务端统计,配合前端 JS 统计将是绝杀。一站式统计,啥请求,啥状态码都躲不过,adblock 了也不管用,只是少点客户端信息。

    @ashong #21 我在用 Matomo,关掉了浏览器实时归档,每天新打开还至少等十几秒,报告筛选也差不多十来秒。这玩意儿跟性能只能说毫不相干,也就是功能齐全这个优点能令人选择它了。
    terranboy
        30
    terranboy  
       2021-03-05 10:09:29 +08:00
    Matomo 是不是就是以前的 piwik,我记得数据量大了要用 memcache 之类的配置 以前用了还行
    hooopo
        31
    hooopo  
    OP
       2021-03-05 10:21:18 +08:00
    @eason1874 并没有少客户端信息哇
    hooopo
        32
    hooopo  
    OP
       2021-03-05 10:33:43 +08:00 via Android
    @terranboy 免费版也就那样了
    eason1874
        33
    eason1874  
       2021-03-05 10:44:06 +08:00
    @terranboy #30 是以前的 piwik,我没配置任何内存缓存,看来得试试。官方优化指南网页没提过这回事,我按指南配置好,后台显示《太好了!您的 Matomo 设置没有任何问题。为自己鼓掌!》,然后每次新打开就是几秒到十几秒。


    @hooopo #31 日志阶段能统计到的也就普通 HTTP 请求的信息了,会少一些客户端信息,比如分辨率、鼠标焦点、停留时间。我现在就是日志阶段统计的,网页没放统计代码。
    hooopo
        34
    hooopo  
    OP
       2021-03-05 10:50:19 +08:00 via Android
    @eason1874 纯日志分析当然不行啦 我的是有 tracker 的 目标是提供和 ga 同样的功能
    iphantom
        35
    iphantom  
       2021-03-05 10:56:28 +08:00
    支持 点赞
    hooopo
        36
    hooopo  
    OP
       2021-03-05 11:07:10 +08:00 via Android
    @iphantom 👏
    yuthelloworld
        37
    yuthelloworld  
       2021-03-05 11:12:29 +08:00
    作为个人站长 最关心的还是 UV 和 PV
    yuthelloworld
        38
    yuthelloworld  
       2021-03-05 11:17:04 +08:00
    不是 docker 环境是不是就不能部署?
    hooopo
        39
    hooopo  
    OP
       2021-03-05 11:27:55 +08:00 via Android
    @yuthelloworld 可以的哇 之后会补文档
    yuthelloworld
        40
    yuthelloworld  
       2021-03-05 11:30:46 +08:00
    @hooopo #39 坐等 ,试水
    hooopo
        41
    hooopo  
    OP
       2021-03-05 11:33:11 +08:00 via Android
    @yuthelloworld 好的 有用户就有动力了
    impl
        42
    impl  
       2021-03-05 12:32:07 +08:00
    纳尼?用 Rails 写的?
    hooopo
        43
    hooopo  
    OP
       2021-03-05 12:37:35 +08:00 via Android
    @impl 是啊
    yanyanlongxia
        44
    yanyanlongxia  
       2021-03-07 16:51:42 +08:00
    坐等项目成熟后在部署
    hooopo
        45
    hooopo  
    OP
       2021-03-07 18:17:54 +08:00 via Android
    yuthelloworld
        46
    yuthelloworld  
       2021-03-08 08:51:20 +08:00
    @hooopo #45 大佬快出个虚机部署教程,我的大刀已饥渴难耐
    hooopo
        47
    hooopo  
    OP
       2021-03-08 10:46:47 +08:00 via Android
    @yuthelloworld docker compose 可以吗
    yuthelloworld
        48
    yuthelloworld  
       2021-03-08 10:50:24 +08:00
    @hooopo #47 没有搞 DOCKER,就是一个裸的云服务器- -
    hooopo
        49
    hooopo  
    OP
       2021-03-08 10:52:10 +08:00 via Android
    @yuthelloworld 装一个哇 又不麻烦
    yuthelloworld
        50
    yuthelloworld  
       2021-03-08 11:07:55 +08:00
    @hooopo #49 网站和数据库都在上面 ,不会影响吗
    hooopo
        51
    hooopo  
    OP
       2021-03-08 11:14:25 +08:00 via Android
    @yuthelloworld 不会 我目前也是和其他网站部署在一台服务器 docker compose 部署的这个 其他服务是主机上部署
    dreamramon
        52
    dreamramon  
       2021-03-08 19:00:09 +08:00
    就是 plausible 嘛,楼主也计划像 plausible 那样收费?
    hooopo
        53
    hooopo  
    OP
       2021-03-08 19:28:23 +08:00 via Android
    @dreamramon 估计会比 plausible 强大一些 plausible 的卖点是隐私 我的卖点是功能全,几乎能做到和 ga 一样的功能 另外就是私有部署和系统集成方便 saas 版收点服务器钱也是要的吧
    firefox12
        54
    firefox12  
       2021-03-09 10:09:41 +08:00
    我想问问 这个 GA 的客户端 js 是啥样,可以收集那些信息,可以定制收集某些信息吗?
    hooopo
        55
    hooopo  
    OP
       2021-03-09 10:55:57 +08:00 via Android
    @firefox12 是基于 Google analytics v4 你可以在 hackershare.dev 里查看 支持各种自定义 event 并且内置电商模块 ga 文档写的很清楚
    firefox12
        56
    firefox12  
       2021-03-09 13:44:01 +08:00
    @hooopo 不太懂, 我记得原来 是加入一个 js 在 站点里,https://www.googletagmanager.com/gtag/js?xxx 还可以收到广告费之类, 你这个是把这个 js 重写了吗? 还是后端统计 pv uv 的后端?我想看看 那个 js 做了点什么
    hooopo
        57
    hooopo  
    OP
       2021-03-09 15:02:10 +08:00
    @firefox12 你注册一下 我的 demo 站 你就明白了
    hantsy
        58
    hantsy  
       2021-03-09 22:43:45 +08:00
    这 UI 好专业啊。
    hooopo
        59
    hooopo  
    OP
       2021-03-09 22:45:42 +08:00 via Android
    waytocode
        60
    waytocode  
       2021-03-11 12:25:46 +08:00
    去 themeforest 买一套模板不可以么
    hooopo
        61
    hooopo  
    OP
       2021-03-12 11:41:36 +08:00 via Android
    @waytocode 也是一个办法
    yanyanlongxia
        62
    yanyanlongxia  
       2021-04-04 21:39:43 +08:00
    请问能不能增加国内各省份访问量统计呀?(非常想知道用户来自哪个省份或城市,但是有不想用百度统计或 Google Analytics)
    hooopo
        63
    hooopo  
    OP
       2021-04-05 02:09:10 +08:00
    @yanyanlongxia 有的 已经是到 city 级别的 但准确度取决于 ip 库了
    hooopo
        64
    hooopo  
    OP
       2021-04-05 02:11:00 +08:00
    @yanyanlongxia 最近在加一个 measurement protocol,很多电商用户想自己后台发送订单相关信息进去
    yanyanlongxia
        65
    yanyanlongxia  
       2021-04-10 18:33:00 +08:00
    请问 1c0.5G 的小鸡用来部署这个项目够吗?只是自己用,每天访问人数不会超过 100 。
    hooopo
        66
    hooopo  
    OP
       2021-04-11 16:47:39 +08:00 via Android
    @yanyanlongxia 这…… 我得看看可不可以优化一下支持这种配置
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:55 · PVG 11:55 · LAX 19:55 · JFK 22:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.