dsh-side-monitor:在 DSH 侧边栏实时查看宿主机状态的只读监控插件

前言

用 DeepSeek Harness(DSH)做开发或运维时,经常需要知道 DSH 所在机器当前的状态:CPU 和内存水位、哪些进程在吃资源、容器是否正常。常见做法是另开终端连上去执行 top、docker ps,看完再切回来。dsh-side-monitor 把这件事搬进了 DSH 界面:在左侧边栏提供「System Monitor」入口,点开右侧面板,实时展示宿主机概览、进程列表和 Docker 容器状态。下面介绍这个插件的定位、功能和安装方法。

插件定位

dsh-side-monitor 是一个面向 DSH Web 的系统监控侧边插件,由 pc439527 维护,许可证为 MIT,当前版本 0.3.1,已针对 DeepSeek Harness 0.1.1-rc.2 验证(包括 sidebar.footer.action 槽位与 RPC 契约)。

DSH 的理念是「一切皆插件」。这个插件把入口注册在 sidebar.footer.action 槽位上:侧边栏展开时显示文字、折叠时只留图标、面板打开时入口高亮。

它是只读设计:不提供 docker 重启/停止,没有进程 kill,没有 exec,也没有 shell,定位是快速查看资源、排查问题和观察容器。

核心功能

概览

打开面板后首先是概览页:

1、CPU / 内存指标卡:大号百分比加副信息,配固定 0–100 轴的面积填充迷你图;
2、网络主接口吞吐和根分区磁盘两个轻量 KPI;
3、下方依次是系统负载、系统信息、多挂载点磁盘分区、网络接口(含默认路由与虚拟接口标记,显示 RX/TX 速率);
4、Docker 摘要以 Total / Running / Stopped / Issues 计数展示。

进程

搜索、排序、分页全部在 Host RPC 内完成:先扫描全部进程再过滤,进程表很大时界面依然流畅。支持按 CPU / 内存 / PID / 名称排序,卡片显示 PID · PPID · 用户,点击展开 RSS / uptime / 命令。还可以按名称 + 命令聚合成组,展开查看 PID 列表、去重后的用户与总 RSS。

Docker 容器

每个容器显示名称、镜像、状态、健康(healthy / unhealthy / starting)、CPU%、内存和端口。正常停止(exit 0)的容器只计为 Stopped,不计入 Issues;Issues 留给 unhealthy、health-starting、崩溃循环、dead 或非零退出这类真实问题,崩溃容器会显示退出码,如 Crashed (137)。

可操作的端口

已发布的 Web 端口点击后在新标签页打开;非 Web 端口点击即复制 host:port;右键菜单提供 HTTP/HTTPS 打开与复制。地址处理覆盖 127.0.0.1、0.0.0.0 和显式 hostIp,IPv6 自动加方括号;未发布端口无法打开。

双语界面与响应式布局

界面默认简体中文(不跟随浏览器语言),可切换 en-US:通过抽屉菜单 ⋯ → Language 即时切换,选择以 dsh-side-monitor:language 持久化。

布局方面:桌面端是右侧可拖拽抽屉,默认 500px,范围 360–800px,宽度持久化;视口小于 768px 时切换为全屏页面,用 Container Query 适配面板自身宽度;移动端使用 100dvh 加 safe-area insets。

数据来源与协议握手

插件会自动探测当前运行在 Host 还是 Container 环境,头部显示徽标和状态行,并提供「View data sources」对话框(含一致性自检)。meta 端点报告细分状态与 Host capabilities(Host Mount 模式、Docker socket、host-netns 探测、进程聚合、容器统计)。

RPC 响应携带 protocolVersion(v3)与 pluginVersion,版本不匹配时显示版本横幅和 About 面板(Browser / Host / RPC 版本、细分状态与 capabilities),而不是留下未定义字段。

Host Mount 模式下,/proc/net 是按网络命名空间隔离的,插件通过短时 –net=host 只读探测读取主机网络命名空间,最多每 15s 一次,带缓存与回退,不阻塞概览轮询。

模块状态与刷新

各模块有独立的错误和更新时间,某个模块失败时保留最后有效数据并显示 stale 横幅,不影响其他模块。支持手动刷新(带 spinner 动画)和一键复制诊断文本。

轮询方面:面板关闭或标签页隐藏时轮询停止/暂停;每次轮询会等待上一个请求完成,防止重入。

安装与启用

先确认环境:engines 要求 Node >= 20;peerDependencies 如下:

{
  "@deepseek-ai/cordis": "^4.0.1",
  "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.2",
  "@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2",
  "react": "^18.2.0",
  "react-dom": "^18.2.0"
}

README 给出的安装方式是从本地目录安装:

# 从本地目录安装
dsh plugin --profile web add /path/to/dsh-side-monitor

安装后刷新页面,左侧边栏底部出现「System Monitor」入口,点击即可打开监控面板。

补充一点:v0.3.1 移除了对 @deepseek-ai/dsh-client-ui-slots 的引用——该包不再随 DSH 0.1.1-rc.2 提供(其槽位运行时已合并进 @deepseek-ai/dsh-client-runtime),这样全新安装时不会误拉 rc.6 时代的旧包。

典型用法

经过上面的步骤,插件已装好并出现在侧边栏,几个常见操作如下:

1、看整体水位:打开 System Monitor,先看概览页的 CPU / 内存迷你图和 Docker 摘要,确认是否有异常;
2、定位进程:切到进程页,按 CPU 或内存排序,或直接搜索进程名,需要时展开看命令行;
3、观察容器:在 Docker 页查看各容器状态与健康度,看到 Crashed (137) 之类的徽标就知道容器异常退出过;
4、跳转服务:容器卡片里已发布的 Web 端口点击即在新标签页打开,非 Web 端口点击复制 host:port;
5、切换语言:抽屉菜单 ⋯ → Language 可在 zh-CN 与 en-US 之间即时切换。

适用场景与注意

适合需要快速查看 DSH 宿主机资源、排查进程与容器问题、观察容器运行状态的开发者和运维人员。它只读、不提供任何操作能力,适合在环境里常驻。

使用前注意两点:

1、插件以当前 dsh 进程的权限运行,安装前应检查插件源码与许可证(本项目为 MIT),确认可以接受再安装;
2、当前版本 0.3.1 针对 DeepSeek Harness 0.1.1-rc.2 验证,其他 DSH 版本下的表现以实际测试为准。

小结

dsh-side-monitor 把宿主机监控做成了 DSH 的一个侧边插件,只读、安装后刷新页面即可使用,省去反复连终端查资源的步骤。项目地址见 GitHub(https://github.com/pc439527/dsh-side-monitor),也可在社区目录查看插件页(https://www.skillhub.cn/plugins/pc439527/dsh-side-monitor)。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜