dsh-monitor:DSH Web 左欄系統與工作區資源監控

前言

在 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。

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

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

小夜