Monitor X

VS Code 扩展 — 实时系统资源监控。状态栏指标 + Webview 趋势面板。
简体中文 | English
架构
┌─ VS Code Extension (TypeScript) ─────────────────┐
│ src/ │
│ ├── extension.ts 入口 │
│ ├── config/ 配置管理 │
│ ├── data/ 数据采集层 │
│ ├── status-bar/ 状态栏指标 │
│ ├── web-view/ Webview 面板 │
│ ├── util/ 工具函数 │
│ └── test/ 测试 │
└──────────┬───────────────────────────────────────┘
│ HTTP (127.0.0.1:随机端口)
┌──────────▼───────────────────────────────────────┐
│ Go Backend (backend/) │
│ cmd/monitor/ 入口 │
│ internal/ │
│ ├── api/ HTTP 路由 + 处理器 │
│ ├── collector/ 系统指标并行采集 │
│ └── cpu/ CPU 平台适配 │
│ (Unix: /proc/stat | Windows: PDH 计数器) │
└──────────────────────────────────────────────────┘
技术栈
| 层 |
技术 |
| 扩展 |
TypeScript 5.9, VS Code API 1.104 |
| 构建 |
esbuild (打包压缩) |
| 规范 |
ESLint + Prettier |
| 测试 |
Mocha + @vscode/test-electron |
| 后端 |
Go 1.26, gopsutil v4 |
| 框架 |
GoFrame v2.10 |
| 文档 |
Next.js 14 + Fumadocs |
| 包管理 |
pnpm |
功能
状态栏指标 (11 项)
| 指标 |
默认 |
图标 |
示例 |
| CPU |
开 |
$(chip) |
73.2% |
| 内存活跃 |
开 |
$(pie-chart) |
4.21 / 15.6 GiB |
| 内存已用 |
关 |
$(pie-chart) |
8.15 / 15.6 GiB |
| 网络 |
开 |
$(cloud-download) $(cloud-upload) |
125 KiB/s 2.34 MiB/s |
| 磁盘 I/O |
关 |
$(log-in) $(log-out) |
50.2 MiB/s 12.1 MiB/s |
| 磁盘空间 |
开 |
$(database) |
/ 45.2% 120/256 GiB |
| 电池 |
开 |
$(plug) / $(symbol-event) |
85.2% · 1h 30m |
| CPU 温度 |
关 |
$(flame) |
52.3°C |
| CPU 频率 |
关 |
$(dashboard) |
3.81 GHz |
| 运行时间 |
开 |
$(clock) |
2d 14h 32m |
| 系统版本 |
开 |
— |
Ubuntu 22.04 |
资源监控面板
Webview 侧边栏,11 项指标趋势图:
- Canvas 2D 渲染,渐变填充 + 贝塞尔曲线
- 自适应 Y 轴 + 折线/柱状图切换
- 可配置 10–500 采样点
- 电池健康度、充放电状态、温度范围、频率区间
电池功率
实时功率监测,5 采样滑动平均,正充电/负放电。
快速开始
git clone git@gitlab.com:chunxiaqiu/monitor-x.git
cd monitor-x
pnpm install
pnpm run compile
# F5 启动调试
脚本
| 命令 |
说明 |
pnpm run compile |
类型检查 + esbuild 打包 |
pnpm run lint |
ESLint |
pnpm run test |
测试 |
pnpm run package:vsix |
打包 VSIX |
pnpm run go:test |
Go 后端测试 |
cd backend && go build ./cmd/monitor/ |
编译 Go 二进制 |
配置 (24 项)
前缀 monitor-x.*,修改实时生效。
| 配置 |
默认值 |
说明 |
metrics.* |
按指标 |
开关状态栏指标 |
metricsOrder |
— |
排序 |
refresh-interval |
2000 ms |
刷新间隔 |
unitSystem |
binary |
binary(KiB) / decimal(kB) |
showSpace |
false |
数字与单位间空格 |
singleUnit |
false |
单位缩写 |
significantDigits |
按指标 |
有效位数 (1–6) |
uptimeFormat |
auto |
自定义格式 |
resourceUsage.* |
— |
图表配置 |
diskSpace |
平台默认 |
挂载点过滤 |
项目结构
monitor-x/
├── src/ # TypeScript 扩展
├── backend/ # Go 后端
│ ├── cmd/monitor/ # 入口
│ ├── internal/ # 内部包
│ ├── Makefile
│ └── .golangci.yml
├── website/ # 文档站 (Next.js)
├── l10n/ # 本地化
├── scripts/ # 构建脚本
├── .gitlab-ci.yml # CI/CD
└── package.json
本地化
许可证
MIT
| |