Go + ClickHouse 搭建自托管埋点分析平台:从事件接收到 Superset 看板
2026/9/15 6:38:57 网站建设 项目流程

文章目录

    • 一、整体架构
    • 二、启动前准备
    • 三、启动数据基础设施
    • 四、发送并验证第一条事件
    • 五、上线前检查清单
    • 六、适用范围与取舍

当 Web、App、小程序和服务端已经有埋点后,团队常遇到三个问题:事件数据保存在哪里?指标口径能否直接检查?更换后端时是否必须重写所有客户端?

SensorFlow 提供了一条开源自托管链路:Go 接收事件,ClickHouse 存储和查询,Redis 支撑接收流程,Apache Superset 制作 SQL 图表与看板。

一、整体架构

数据流为:

神策官方 SDK → SensorFlow 接收接口 → ClickHouse → Superset

SensorFlow 不发布自研客户端 SDK。已有神策官方 SDK 项目可在测试环境修改serverUrl,将标准事件发送到 SensorFlow。这样可以先迁移服务端数据链路,再评估客户端调整。

二、启动前准备

本地验证需要 Docker、Docker Compose 和 Go 1.17 或更高版本。基础设施包含 ClickHouse、Redis 和 Superset;Go 接收服务独立运行,默认监听8081

生产环境不要直接使用示例配置。至少需要设置 ClickHouse、Redis、Superset 管理员密码及独立的SUPERSET_SECRET_KEY,并在接收地址前配置 HTTPS 与访问控制。

三、启动数据基础设施

进入项目的 Docker 部署目录,按文档设置必需环境变量后执行:

dockercompose up-d

默认情况下,ClickHouse 提供8123/9000端口,Redis 使用6379,Superset 使用8088。随后检查conf/app.conf中的 Redis 与 ClickHouse 连接配置,再启动 Go 服务:

go run main.go

四、发送并验证第一条事件

不要一上来切换生产流量。建议先发送一条integration_test,附带platformenvironment等容易识别的属性,然后完成三层验证:

  1. 接收接口返回是否符合预期;
  2. ClickHouse 的sensors.event是否出现事件,属性类型和用户标识是否正确;
  3. Superset SQL Lab 是否可以查询,并生成事件量趋势图。

在 Superset 中可以先执行最小查询:

SELECTevent,count()ASevent_countFROMsensors.eventGROUPBYeventORDERBYevent_countDESC;

确认数据正确后,再逐步构建日事件量、独立设备、注册转化等看板。

五、上线前检查清单

  • 核对匿名 ID、登录 ID 和跨端身份关联;
  • 核对数值、字符串、布尔值及时间属性类型;
  • 验证客户端时间、服务端时间、时区和迟到事件;
  • 小流量灰度,并保留旧接收地址和回滚能力;
  • 配置监控、日志、备份恢复和容量告警;
  • 对加密插件、可视化埋点、全埋点及不同 SDK 版本单独测试。

六、适用范围与取舍

这套方案适合重视数据驻留、希望直接使用 ClickHouse SQL、且具备基础运维能力的团队。它不会自动替代成熟产品分析平台的会话回放、实验、Feature Flag 或全部无代码分析能力;如果目标只是轻量网站访问统计,也有更简单的工具。

SensorFlow 是独立开源项目,与神策数据不存在关联、背书或官方认证关系。所谓兼容指标准事件上报流程,具体 SDK 版本和扩展功能仍须测试。

项目文档:https://sensorflow.site/docs

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询