前言¶
在 DeepSeek Harness(DSH)上跑多个工作区、多个会话和 agent 时,主机 CPU、内存、磁盘和网络是否吃紧,往往只能另开终端看 top 或 df。DSH Web 本身不提供统一的资源视图。社区插件 dsh-monitor(维护者 lof6yo)在 Web UI 左栏增加「系统监控」页,用卡片和饼图展示服务器级指标与工作区目录占用,并说明 DSH 进程内无法按工作区拆分 CPU/内存的口径限制。
这是什么¶
dsh-monitor 是面向 DSH Web UI 的轻量客户端插件:Host 侧采样系统与 DSH 服务状态,浏览器通过 SSE 订阅更新;界面只保留左栏全局页,不再在右侧边栏注册工作区监控 tab。仓库:https://github.com/lof6yo/dsh-monitor;社区目录页:https://www.skillhub.cn/plugins/lof6yo/dsh-monitor。分类为客户端;当前 package 版本 0.5.0,许可证 MIT。
核心功能¶
左栏入口与页面布局¶
安装并刷新 Web 后,在 sidebar.panellist 中点击插件图标,进入中央「系统监控」页(标题来自 locale/meta.title)。
资源卡片¶
以圆角卡片展示:
- CPU(总量与分核)
- 内存与 Swap
- 磁盘:
/、/home(默认挂载点可在配置中改) - 网络
- DSH 服务进程与 cgroup 相关指标
工作区饼图¶
工作区列表合并为一张宽圆角卡片:整圈表示工作区所在磁盘的总空间;切片为各工作区目录大小、其他占用与未使用空间。图例标出工作区名称、目录大小及占磁盘总空间的百分比;卡片底部汇总工作区、会话与运行中 agent 数量。目录大小由后台 du -sk 扫描,默认约 5 分钟重扫一次。
轻量与鉴权¶
- 零第三方依赖;Host 仅在存在 SSE 订阅者时以 2s 间隔采样,最后一个订阅者离开后停止;浏览器页面隐藏时主动断开流。
- 所有路由先经过
connection.requestRejection(Host/Origin 与浏览器登录);无connection服务时 fail-closed 到 loopback。
数据口径(诚实归因)¶
DSH 的会话与 agent 运行在同一 node 进程内,无法按工作区精确拆分 CPU/内存。饼图只展示可测的目录大小与所在磁盘空间;资源数字为服务器/服务级口径。
非 Linux¶
CPU/内存降级为 node:os,磁盘用 fs.statfs;网络与 cgroup 标记不可用;目录扫描不可用时图例显示「不可用」。
安装与启用¶
在 DSH profile 里通过 plugin_manager 的 install_bundle 安装本插件目录;bundle 的 cordis.patch.yml 会插入一行 dsh-monitor-v3(-v3 用于绕开 Client 模块缓存,界面仍显示「系统监控」)。
要求 DSH 版本:
>=0.2.1-rc.2 <0.2.3
bundle 同时声明 dsh.client;安装后刷新一次 Web 页面以便 Client 模块加载。若仍未出现入口,重启一次 dsh-web。卸载或禁用时,Host 通过 ctx.effect 释放路由、定时器与目录扫描进程。
典型用法¶
在 Web 中查看¶
刷新或重启 Web 后,从左栏进入「系统监控」,页面通过 SSE 约每 2 秒(默认)收到一帧完整快照。
HTTP 接口¶
Host 提供:
GET /dsh-monitor/state
返回当前快照(JSON)。
GET /dsh-monitor/events
SSE 流,每个采样周期推送一帧完整快照。
数据源包括 /proc/stat、/proc/meminfo、/proc/net/dev、/proc/self/cgroup、cgroup v2(如 memory.current、cpu.stat 等)、fs.statfs、node:os,以及工作区目录的 du -sk 扫描结果。
客户端插件更新后需要一次完整页面 boot;重装后关闭标签页再打开即可。
配置¶
在 cordis.patch.yml 的 plugin row config 中可调整:
| 键 | 默认 | 说明 |
|---|---|---|
intervalMs |
2000 |
采样间隔,1000–30000 |
historyPoints |
90 |
内存趋势点数(约 3 分钟 @2s) |
workspaceSizeTtlMs |
300000 |
工作区目录大小缓存时长,60000–3600000 |
path |
/dsh-monitor |
路由前缀(客户端目前硬编码同一路径) |
diskMounts |
['/', '/home'] |
服务器磁盘卡片展示的挂载点 |
适用场景与注意¶
适合在 DSH Web 上长期开多个工作区、需要一眼看主机与工作区磁盘占用的开发者。插件 Host 逻辑以 当前 dsh 进程权限 读取 /proc、执行目录扫描并注册 HTTP 路由;安装前应阅读仓库源码与 MIT 许可证,确认环境与安全策略可接受。
DeepSeek Harness 生态强调「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-monitor 把服务器级资源与工作区目录占用收进 DSH Web 左栏,采样与 SSE 按需启停,并明确标注无法按工作区拆分进程内 CPU/内存的限制。详情与 issue 见 GitHub:https://github.com/lof6yo/dsh-monitor;目录页:https://www.skillhub.cn/plugins/lof6yo/dsh-monitor。