文章目录
- 一、整体架构
- 二、启动前准备
- 三、启动数据基础设施
- 四、发送并验证第一条事件
- 五、上线前检查清单
- 六、适用范围与取舍
当 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,附带platform、environment等容易识别的属性,然后完成三层验证:
- 接收接口返回是否符合预期;
- ClickHouse 的
sensors.event是否出现事件,属性类型和用户标识是否正确; - Superset SQL Lab 是否可以查询,并生成事件量趋势图。
在 Superset 中可以先执行最小查询:
SELECTevent,count()ASevent_countFROMsensors.eventGROUPBYeventORDERBYevent_countDESC;确认数据正确后,再逐步构建日事件量、独立设备、注册转化等看板。
五、上线前检查清单
- 核对匿名 ID、登录 ID 和跨端身份关联;
- 核对数值、字符串、布尔值及时间属性类型;
- 验证客户端时间、服务端时间、时区和迟到事件;
- 小流量灰度,并保留旧接收地址和回滚能力;
- 配置监控、日志、备份恢复和容量告警;
- 对加密插件、可视化埋点、全埋点及不同 SDK 版本单独测试。
六、适用范围与取舍
这套方案适合重视数据驻留、希望直接使用 ClickHouse SQL、且具备基础运维能力的团队。它不会自动替代成熟产品分析平台的会话回放、实验、Feature Flag 或全部无代码分析能力;如果目标只是轻量网站访问统计,也有更简单的工具。
SensorFlow 是独立开源项目,与神策数据不存在关联、背书或官方认证关系。所谓兼容指标准事件上报流程,具体 SDK 版本和扩展功能仍须测试。
项目文档:https://sensorflow.site/docs