Skip to content

Repository files navigation

数据大屏 · 服务器集群监控中心

基于 Vue 3 + TypeScript + ECharts 的服务器集群监控可视化大屏,采用国风科技风视觉。数据来源于真实采集的四张监控表(主机维度、指标字典、性能事实、磁盘事实),按“每小时一帧”预聚合后循环回放,呈现集群 CPU、磁盘、网络、负载与告警的实时演化。

项目预览

数据大屏

预览图由截图脚本自动生成(npm run screenshot),默认输出到 docs/screenshots/dashboard-1920x1080.png

大屏构成

  • 顶部核心指标卡片:集群 CPU 使用率、磁盘平均使用率、网络吞吐、系统可用率
  • 资源趋势折线图:CPU 使用率 / 磁盘使用率双序列,按小时滑动
  • 机房主机分布环形图
  • 机房拓扑图:监控中心 + 各机房节点,节点颜色随健康度变化
  • 主机负载排行榜:按 CPU 使用率排序的 TOP 主机
  • 集群健康雷达:CPU / 内存 / 磁盘 / I/O / 网络 / 负载六维余量
  • 实时告警事件流:由真实阈值触发的滚动告警

数据来源与聚合口径

原始数据为四张制表符分隔表:

文件角色关键字段
host_detail.dat主机维度hostid
mod_detail.dat指标字典mod
pref_tsar.dat性能事实ts, hostid, mod, value
disk_tsar.dat磁盘事实ts, hostid, mod, value

聚合口径:以 FLOOR(ts / 3600000) * 3600000 将毫秒时间戳按小时截断,对同一小时内的全部主机与采样值分别计算平均值、最大值、最小值与样本数,得到每小时一个数据截面。预聚合结果保存在 src/mocks/monitorFrames.json,共 120 帧。

技术栈

分类选型
前端框架Vue 3(<script setup> + 组合式 API)
构建工具Vite
语言TypeScript(strict 模式)
图表ECharts
状态管理Pinia
请求库Axios
接口 mockMSW(Mock Service Worker)
单元测试Vitest
端到端测试Playwright
代码规范ESLint + Prettier + Stylelint

数据流

页面通过 dashboardService 请求 GET /dashboard。默认 mock 模式下由 MSW 拦截,nextDashboardFrame()monitorFrames.json 逐帧回放;Pinia store 每 2 秒轮询一次驱动页面刷新。业务组件只依赖 DashboardData 类型契约,不直接接触数据来源。

切换到真实后端:复制 .env.example.env,设置 VITE_DATA_SOURCE=apiVITE_API_BASE_URL,后端返回符合 DashboardData 结构的 JSON 即可,前端无需改动。

快速开始

环境要求:Node.js 18 及以上。

npm install
npm run prepare:msw # 首次运行生成 MSW worker
npm run dev -- --host 127.0.0.1 --port 10001

浏览器访问 http://127.0.0.1:10001/

可用脚本

  • npm run dev — 启动开发服务器
  • npm run build — 类型检查并构建生产包
  • npm run preview — 预览构建产物
  • npm run lint — 运行 ESLint 与 Stylelint
  • npm run test — 运行 Vitest 单元测试
  • npm run test:e2e — 运行 Playwright 端到端测试
  • npm run screenshot — 生成大屏截图到 docs/screenshots/

项目结构

.
├─ index.html
├─ scripts/
│ └─ capture-dashboard.mjs # 自动截图脚本
├─ src/
│ ├─ app/ # 应用入口与全局样式
│ ├─ components/ # 通用组件(面板 / 指标卡 / 头部)
│ ├─ charts/ # ECharts 图表组件与主题
│ ├─ layouts/ # 大屏等比缩放布局
│ ├─ views/ # 页面(DashboardView)
│ ├─ services/ # 数据访问层(http / dataSource / dashboardService)
│ ├─ mocks/ # 数据回放器、监控数据帧、MSW
│ ├─ stores/ # Pinia 状态管理
│ ├─ utils/ # 格式化 / 自适应工具
│ ├─ types/ # 领域模型类型
│ └─ tests/ # 单元测试与 E2E 测试
├─ docs/screenshots/ # 大屏展示截图
└─ 各类配置文件(vite / tsconfig / eslint / prettier / stylelint / playwright)

License

本项目基于 MIT License 开源。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages