7af8812e26
add memory and disk monitoring cards with richer server metrics and localized labels in the workspace status panel group ssh terminal tabs by server with per-group add actions to make multi-terminal relationships clearer sync helloagents archive and module documentation for the completed workspace updates
80 lines
3.2 KiB
Markdown
80 lines
3.2 KiB
Markdown
# 变更提案: server-status-memory-disk-cards
|
|
|
|
## 元信息
|
|
```yaml
|
|
类型: 功能增强
|
|
方案类型: implementation
|
|
优先级: P1
|
|
状态: 已完成
|
|
状态说明: 已按参考图补齐服务器状态中的内存卡片和磁盘卡片,并接入真实监控数据
|
|
创建: 2026-03-25
|
|
完成: 2026-03-25
|
|
```
|
|
|
|
---
|
|
|
|
## 1. 需求
|
|
### 背景
|
|
当前服务器状态面板原本只有 CPU、内存、Swap、磁盘进度条,以及 CPU / 网络速度折线图,无法承载参考图中的内存细分项、磁盘设备信息和读写速率展示。
|
|
|
|
### 目标
|
|
- 新增参考图风格的内存监控卡片,展示总量、已用、缓存、空闲和环形占比。
|
|
- 新增参考图风格的磁盘监控卡片,展示设备名、文件系统类型、读写速率以及挂载点/大小/可用/已用率。
|
|
- 保留现有 CPU / 网络曲线和基础状态信息。
|
|
|
|
### 约束条件
|
|
```yaml
|
|
范围约束:
|
|
- packages/backend/src/services/status-monitor.service.ts
|
|
- packages/frontend/src/components/StatusMonitor.vue
|
|
- packages/frontend/src/types/server.types.ts
|
|
- packages/frontend/src/locales/{zh-CN,en-US,ja-JP}.json
|
|
兼容约束:
|
|
- 不新增第三方依赖
|
|
- 保留现有 StatusCharts.vue 的 CPU / 网络曲线
|
|
数据约束:
|
|
- 新增 memFree、memCached
|
|
- 新增 diskAvailable、diskMountPoint、diskFsType、diskDevice、diskReadRate、diskWriteRate
|
|
```
|
|
|
|
### 验收标准
|
|
- [x] 状态面板出现参考图风格的内存卡片并展示总量、已用、缓存、空闲
|
|
- [x] 状态面板出现参考图风格的磁盘卡片并展示设备、类型、读写速率、挂载点、大小、可用、已用率
|
|
- [x] 新字段来自实时状态采集链路
|
|
- [x] 前端构建通过
|
|
- [x] 后端 TypeScript 构建通过
|
|
|
|
---
|
|
|
|
## 2. 方案
|
|
|
|
### 技术方案
|
|
- 后端重构 `StatusMonitorService`,在现有 SSH 轮询链路中补齐 `free`、`df`、`findmnt` 与 `/proc/diskstats` 的解析。
|
|
- 前端在 `StatusMonitor.vue` 中以卡片替代简单内存/磁盘进度行,内存使用 CSS 环形图,磁盘使用竖向容量条与明细表格。
|
|
- 新增多语言键值用于内存/磁盘卡片标题、统计标签和表头。
|
|
|
|
### 影响范围
|
|
```yaml
|
|
涉及模块:
|
|
- frontend
|
|
- backend
|
|
变更文件:
|
|
- packages/backend/src/services/status-monitor.service.ts
|
|
- packages/frontend/src/components/StatusMonitor.vue
|
|
- packages/frontend/src/types/server.types.ts
|
|
- packages/frontend/src/locales/zh-CN.json
|
|
- packages/frontend/src/locales/en-US.json
|
|
- packages/frontend/src/locales/ja-JP.json
|
|
```
|
|
|
|
### 风险评估
|
|
| 风险 | 等级 | 应对 |
|
|
|------|------|------|
|
|
| Linux 不同发行版的 `free` / `df` / `findmnt` 输出格式差异 | 中 | 采用多层回退解析,失败字段返回 `undefined` |
|
|
| 根挂载点对应设备可能是分区或 mapper 设备 | 中 | 优先规整到块设备名,无法精确匹配时 I/O 速率回退为 0 |
|
|
| 卡片信息较多可能挤压原状态布局 | 低 | 采用纵向卡片堆叠并保留现有图表区域 |
|
|
|
|
### 技术决策
|
|
- `server-status-memory-disk-cards#D001`: 采用卡片化监控视图,而不是继续在折线图区域追加内存/磁盘折线图。
|
|
- `server-status-memory-disk-cards#D002`: 磁盘读写速率基于 `/proc/diskstats` 计算,不引入 `iostat` 等额外依赖。
|