

1个 ClickHouse 存下全部数据:事件、账号、配置
2个环境变量起步,其余在网页里填
0条迁移脚本:换版本启动,表结构自己补齐
一套数据,四种用法
采集、看数、问数、取数,数字处处对得上
统计只有一个实现。管理界面、Agent、OpenAPI 调用同一个查询、命中同一份缓存;SDK 采来的每条事件都落在你自己的 ClickHouse 里,明细随时能查。
打开浏览器就能看全
- 流量、页面、用户、事件、行为五组分析,三十多个分析页,都按项目时区出数
- 日期、对比、筛选全写在地址栏,刷新、分享、存书签都是同一张图
- 每张图都能切成表、导出 CSV、加入看板;指标名旁边写着口径
- 热力图一键叠到你自己的网页上看

专业的统计分析
从埋点到归因,常用的分析都在开源版本里
流量、页面、用户、事件、行为在同一个项目、同一张事件表里,口径一致。热力图、会话回放、归因、A/B 实验没有授权开关。


埋点采集
全埋点自动采页面浏览、点击、停留;业务事件自己埋,事件日志逐条可查。


流量与来源
来源网站、渠道(UTM)、搜索词、地域、设备,本站跳转不算来源。


实时访问
最近 15~180 分钟的分钟曲线和最新的页面浏览,每 10 秒刷新。


事件统计
每个事件的次数、人数、人均;按任意维度或属性拆开看趋势。


漏斗分析
2~8 步有序漏斗,窗口可调,每一步的人数、流失和两种转化率。


留存分析
起始事件与回访事件自选,按日或按周的留存表。


路径分析
做完一件事之后,30 分钟内最常见的下一步。


用户画像
一个人的首末次访问、触点、终端,按会话分组的事件时间线。


热力图
点击与停留热力图,带一次性令牌叠加在你自己的网页上看。


会话回放
按比例抽样录制,默认遮住输入框,回放和同一时段的事件对着看。


归因分析
首次、末次、线性三种模型,把转化归给渠道。


A/B 实验
本地稳定分流,按目标事件算转化率,z 检验给出是否显著。
系统架构
一个二进制,加上 ClickHouse 和 Redis
采集、入库、统计、Agent、OpenAPI 和管理界面都在同一个 evstats 进程里。上报先进 Redis 队列,写进 ClickHouse 成功才确认;流量上来就多开几台进程、在设置页追加 ClickHouse 分片,不用换架构。
安装使用
先在一台机器上体验,再按生产环境部署
快速体验用一段 Docker Compose 把三个服务放在同一台机器上;正式上线建议 ClickHouse、Redis、evstats 各自一台服务器。
1
保存 compose.yaml,启动
ClickHouse、Redis、evstats 三个服务。把示例口令
change-me改掉,然后执行docker compose up -d。services: clickhouse: image: clickhouse/clickhouse-server:24.8 environment: CLICKHOUSE_USER: evstats CLICKHOUSE_PASSWORD: change-me CLICKHOUSE_DB: evstats volumes: - ch-data:/var/lib/clickhouse healthcheck: test: ["CMD", "clickhouse-client", "--user", "evstats", "--password", "change-me", "--query", "SELECT 1"] interval: 5s retries: 30 restart: unless-stopped # 不要把 8123 映射到公网 redis: image: redis:7 command: ["redis-server", "--appendonly", "yes", "--requirepass", "change-me"] volumes: - redis-data:/data healthcheck: test: ["CMD", "redis-cli", "-a", "change-me", "ping"] interval: 5s retries: 30 restart: unless-stopped # 不要把 6379 映射到公网 evstats: image: ghcr.io/mosongcc/evstats:1 working_dir: /var/lib/evstats # 推荐环境变量。同名启动参数 -clickhouse、-redis、-port 写了就覆盖。 environment: EVS_CLICKHOUSE: http://evstats:change-me@clickhouse:8123/evstats EVS_REDIS: redis://:change-me@redis:6379/0 volumes: - evstats-data:/var/lib/evstats/data ports: - "51321:51321" # ClickHouse 或 Redis 连不上时 evstats 按设计退出:等两个依赖健康后再启动,异常退出后自动重启 depends_on: clickhouse: condition: service_healthy redis: condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "/evstats", "healthcheck"] interval: 10s volumes: ch-data: redis-data: evstats-data:2
打开网页,创建管理员
浏览器打开
http://你的主机:51321/。ClickHouse 和 Redis 已经在 Compose 里配好。没有预置账号,管理员由你自己设。3
创建项目,把 SDK 粘进网页
项目页给出带写入密钥的片段。放进网页,打开项目的「接入」页签就能看到第一条事件。
<script src="https://unpkg.com/@evstats/web/dist/evstats.min.js"></script> <script>evstats.init({ endpoint: "http://你的主机/sa", key: "evs_wk_xxx" })</script>
完整步骤、截图与排障 → 快速体验
和常见选择比
| 能力 | 托管统计 | 轻量开源统计 | 商业分析平台 | evstats |
|---|---|---|---|---|
| 数据在自己手里 | 无在服务商那里 | 有自己部署 | 付费私有化部署另购 | 有自己的 ClickHouse,IP 离线解析 |
| 事件 / 漏斗 / 留存 | 有口径由服务商决定 | 部分以页面流量为主 | 有 | 有口径公开在文档里 |
| 热力图 / 回放 / A/B | 部分常要另接工具 | 无多数不提供 | 付费常是附加模块 | 有都在开源版本里 |
| AI 问数 | 部分少数提供 | 无 | 付费多在商业方案里 | 有和图表同一个查询 |
| OpenAPI | 部分接口有限 | 部分能力不一 | 付费多在商业方案里 | 有OpenAPI 3.0,只读 |
| 升级方式 是否不用人工跑迁移 | 有服务商负责 | 部分常要执行迁移脚本 | 付费由厂商实施 | 有换版本启动,自己补表补列 |
| 授权方式 全部功能是否免费 | 部分高级功能收费 | 有开源许可 | 付费按量或按年 | 有Apache-2.0,没有功能开关 |
按常见情况归纳,不代表任何一个具体产品;以各产品自己的说明为准。 为什么是 evstats →
按你的角色读文档
做产品调研、照手册部署、接入使用、二次开发,要看的内容不一样。文档导航 →
产品调研
判断 evstats 能不能满足需求、和别的方案差在哪
部署运维
照着手册把 evstats 装起来、放到公网、长期稳定运行
接入与使用
把数据收进来,在管理界面、Agent、OpenAPI 里用起来
二次开发
读懂代码结构,按自己的需求加功能、改界面、接系统
开源承诺
- Apache-2.0全部代码,包括 SDK 和仪表盘。
- 没有授权开关不存在专业版、企业版功能。
- 不回传数据evstats 不会把任何数据发给作者。











