埋点分析系统

📑 目录
  1. 技术栈
  2. 快速启动
  3. 环境变量
  4. 项目结构

埋点分析系统

前后端分离的埋点数据分析平台,对接 ClickHouse。

技术栈

  • 后端:Python 3.10 + Flask + clickhouse-driver
  • 前端:React 18 + TypeScript + Vite + Chart.js

快速启动

后端

cd backend
python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate

pip install -r requirements.txt

# 设置环境变量(Windows PowerShell)
$env:CLICKHOUSE_HOST="192.168.20.147"
$env:CLICKHOUSE_PASSWORD="your_password"

# 或复制 .env.example 为 .env 并配置
python app.py

前端

cd frontend
npm install
npm run dev

Docker 部署

# 根目录下
docker-compose up -d

环境变量

变量说明默认值
CLICKHOUSE_HOSTClickHouse 地址192.168.20.147
CLICKHOUSE_PORT端口9000
CLICKHOUSE_USER用户名default
CLICKHOUSE_PASSWORD密码(必填)
CLICKHOUSE_DATABASE数据库clklog
CLICKHOUSE_TABLE表名log_analysis
CORS_ORIGINS允许的跨域来源http://localhost:3000

项目结构

.
├── backend/                 # Flask 后端
│   ├── api/                 # API 路由模块
│   │   ├── decorators.py    # 公共装饰器
│   │   ├── detail.py        # 数据明细
│   │   ├── events.py        # 事件分析
│   │   ├── overview.py      # 概览看板
│   │   ├── screens.py       # 页面路径
│   │   └── users.py         # 用户分析
│   ├── app.py               # 应用入口
│   ├── config.py            # 配置
│   ├── database.py          # 数据库连接
│   ├── utils.py             # 工具函数
│   ├── gunicorn.conf.py     # 生产 WSGI 配置
│   ├── Dockerfile
│   └── requirements.txt
├── frontend/                # React 前端
│   ├── src/
│   │   ├── api/             # API 请求
│   │   ├── components/      # 公共组件
│   │   ├── pages/           # 页面组件
│   │   ├── types/           # TypeScript 类型
│   │   ├── utils/           # 工具函数
│   │   └── App.tsx
│   ├── Dockerfile
│   └── package.json
├── .env.example             # 环境变量模板
├── .gitignore
├── docker-compose.yml
└── README.md