# ck-dashboard **Repository Path**: Double-G/ck-dashboard ## Basic Information - **Project Name**: ck-dashboard - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-05 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ck-dashboard ## 项目简介 ck-dashboard 是一个基于 Dash 的实时数据可视化应用,用于展示和分析来自 ClickHouse 数据库的多炉子实时数据。支持同时监控多个炉子的状态,提供直观的图表展示和灵活的数据筛选功能。 ## 功能 - **多炉子监控**:支持同时选择 1-6 个炉子进行监控 - **自适应布局**:根据选择的炉子数量自动调整页面布局(1-3 个炉子单列显示,4-6 个炉子双列显示) - **点位筛选**:每个炉子的点位可以单独选择是否显示 - **实时数据更新**:自动从 ClickHouse 数据库获取最新数据 - **美观的界面**:现代化设计,支持点位横向滚动、图表交互等 ## 项目结构 ``` ck-dashboard ├── app.py # 主程序 ├── config.py # 配置文件 ├── requirements.txt # 依赖列表 ├── Dockerfile # Docker 镜像构建 ├── DOCKER.md # Docker 部署说明 ├── assets/ # 静态资源 │ └── custom.css # 自定义样式 ├── pyproject.toml # 项目配置 ├── requirements.txt # 依赖列表 └── README.md # 项目文档 ``` ## 使用 ### 本地运行 1. 安装依赖: ```bash pip install -r requirements.txt ``` 2. 配置数据库连接(编辑 `.env` 文件): ```env CLICKHOUSE_HOST=your_host CLICKHOUSE_PORT=your_port CLICKHOUSE_USERNAME=your_username CLICKHOUSE_PASSWORD=your_password CLICKHOUSE_DATABASE=your_database CLICKHOUSE_TABLE=your_table ``` 3. 启动应用: ```bash python app.py ``` 4. 浏览器访问:`http://127.0.0.1:8050` ### Docker 部署 详见 `DOCKER.md` 文件。 ```bash # 构建镜像 docker build -t ck-dashboard:latest . # 运行容器 docker run -d --name ck-dashboard -p 8050:8050 ck-dashboard:latest ``` ## 界面说明 ### 炉子选择 - 支持多选,可选择 1-6 个炉子 - 点位下拉框会自动显示所有选中炉子的点位 ### 点位选择 - 支持多选,可选择要显示的点位 - 选中项在一行显示,超出部分可横向滚动 ### 图表布局 - **1-3 个炉子**:单列显示,每个炉子一个图表 - **4-6 个炉子**:双列显示,每行 2 个图表 - 每个图表独立显示,互不影响 ### 数据更新 - 默认展示 24 小时数据 - 每 4 秒更新一次 - 支持暂停/继续功能 ## 配置说明 ### 环境变量(.env 文件) | 变量 | 默认值 | 说明 | | ----------- | ------- | ------------ | | `APP_HOST` | 0.0.0.0 | 应用监听地址 | | `APP_PORT` | 8050 | 应用监听端口 | | `APP_DEBUG` | True | 调试模式 | ### ClickHouse 配置 | 变量 | 默认值 | 说明 | | --------------------- | ------ | -------------------- | | `CLICKHOUSE_HOST` | - | 数据库主机地址 | | `CLICKHOUSE_PORT` | 9000 | 数据库端口 | | `CLICKHOUSE_USERNAME` | - | 用户名 | | `CLICKHOUSE_PASSWORD` | - | 密码 | | `CLICKHOUSE_DATABASE` | - | 数据库名 | | `CLICKHOUSE_TABLE` | - | 表名 | | `DATA_LENGTH` | 0.5 | 数据展示时长(小时) | | `INTERVAL` | 4 | 更新间隔(秒) | ### 炉子点位配置(config.py) 在 `config.py` 的 `FURNACE_TAGS` 中配置每个炉子的点位: ```python FURNACE_TAGS: dict = { "1号炉": { "`e23002ser101:23701fiya1101.daca.pv`": "1号煤线流量", # ... 更多点位 }, "2号炉": { # 点位配置 }, # ... 更多炉子 } ``` ## 故障排除 ### 无法连接 ClickHouse - 检查 `.env` 文件中的连接信息是否正确 - 确认数据库服务是否运行 - 检查网络连接和防火墙设置 ### 应用启动失败 - 确认 Python 版本 >= 3.11 - 检查所有依赖是否已安装 - 查看终端错误信息 ### 图表不显示数据 - 检查数据库中是否有数据 - 确认时间范围配置(`DATA_LENGTH`)是否合理 - 查看应用日志 ## 技术栈 - **后端框架**:Dash (基于 Flask) - **数据库**:ClickHouse - **数据处理**:Pandas - **可视化**:Plotly - **配置管理**:Pydantic Settings - **日志**:Loguru