dsh-dashboards:在 DSH 会话区用看板 tab 聚合 LLM 用量与本机探针

前言

跑 DSH Web 时,用量、节点负载、本机资源和服务探活往往分散在终端命令、Prometheus 端点或第三方监控里。要在一次会话里对照这些信息,需要反复切窗口或自己拼页面。

dsh-dashboards 是 LosEcher 维护的 DSH 客户端插件:在会话区注册「看板」tab(conversation.view),用 widget 网格把 los 第一方指标、macOS 本机探针、服务探活,以及可选的 Glances、Uptime Kuma 和 feed 采集摘要放在同一视图。host 半包在 ctx.webServer 上挂 /dashboards/* 同源聚合 API,client 半包负责 tab 与卡片渲染。

这是什么

  • 名称与归属:npm 包名 dsh-dashboards,仓库 LosEcher/dsh-dashboards,社区目录页 SkillHub。
  • 分类:客户端(dsh.client.platform: web,注入 @deepseek-ai/dsh-client-runtime)。
  • 版本与许可:当前资料中 package 版本为 0.1.0,许可证 MIT;peer 依赖 @deepseek-ai/cordis >=4.0.0 <5.0.0。

插件通过 cordis.patch.yml 接入 profile,不是单独一条 dsh plugin add 命令即可完成全部接线;安装方式见下文。

核心功能

看板 tab 与 widget 网格

client 半包(src/client/)注册 conversation.view tab:id=dashboard,order=90,locale 命名空间 dashboard(zh/en)。按 ~/.dsh/storages/dsh-dashboards/widgets.json 中的配置渲染 stat、matrix、chart、list 等卡片;样式仅使用 --dsw-alias-* 白名单令牌。看板 tab 右上角「编辑」可增删探针目标、移除 widget,保存后即时生效(client bundle 需刷新页面后加载)。

los 第一方指标

同源 API 聚合(每后端独立轮询缓存、single-flight):

  • LLM 用量/成本:GET /dashboards/los/usage(对应 /usage/summary)
  • Provider 延迟趋势:GET /dashboards/los/trends(/metrics/trends)
  • 任务统计:GET /dashboards/los/metrics(Prometheus /metrics)
  • 执行节点矩阵:GET /dashboards/los/nodes(/nodes,含 load/mem 快照与心跳)

los 双 token 从环境、credentials 或 losEnvFile 解析(Bearer 用量 + x-los-operator-token 节点),不写明文。

macOS 原生探针(零额外安装)

GET /dashboards/macos 与 GET /dashboards/macos/history 提供:loadavg、内存(vm_stat,含可回收缓存口径)、CPU(iostat)、磁盘(df)、网络速率(netstat 差分)、进程数;内存滚动 120 点短趋势。差分采样遵守 host 侧的诚实性约定(基线时刻与字节数对应,dt 过小不出速率)。

服务探活

GET /dashboards/probe 对本机关键服务做 HTTP/TCP 探活。目标列表解析链:UI 编辑 store(~/.dsh/storages/dsh-dashboards/probe-targets.json)→ Config.probe.targets(cordis.patch.yml)→ 代码内 DEFAULT_TARGETS。GET/PUT /dashboards/probe-targets 管理目标;PUT 空数组表示重置为默认;带 revision 时不匹配返回 409。

可选:Uptime Kuma 与 Glances

默认关闭,在配置中启用即可:

  • Uptime Kuma:设置 kuma.url 与 kuma.token,走 REST v1 /api/v1/monitors;数据经 GET /dashboards/kuma。
  • Glances:本机执行 brew install glances && glances -w 后配置 glances.url;数据经 GET /dashboards/glances。

feed 采集摘要

读 ~/.dsh/scheduler-reports/feed-digest-*.md(scheduler job「多平台 feed 采集摘要」落盘)最新 5 份,卡片内点击展开正文;GET /dashboards/feed/digests,Markdown 渲染。列表截断时响应会显式带上 available/totalChars 与 truncated。

AI 额度渠道(quota widget)

GET /dashboards/ai-quota 统一输出 channels[](保留 legacy zenmux/packy 字段)。数据源包括:余额 API(ZenMux、Packy、DeepSeek、OpenRouter,凭据在 ~/.dsh/.credentials.yaml)、订阅窗口(quota-axi 本地采集,codex/cursor/claude/kimi/grok/copilot 等,依赖本机官方 CLI/App 登录态)、以及无公开 API 的站内/控制台型渠道(不做自动采集)。刷新间隔 Config.aiQuota.pollMs(默认 5 分钟;看板未开时零采集)。quota-axi 需在插件目录执行:

cd dsh-dashboards && npm install --no-save quota-axi@0.1.29

终端汇总脚本:~/.dsh/scripts/quota-all.mjs(支持 --json)。

运维与合规向 API

  • GET /dashboards/status:后端健康、widget 数、sanity 丢弃计数、egress 关停项、各后端 stale 状态。
  • GET /dashboards/egress:出网清单(每项外呼的目标、用途、凭据与开关);可通过 Config.egress.<id>=false 逐项关闭外呼(缺省全开,关闭只停外呼,不影响读本机文件的采集)。

PUT /dashboards/widgets 校验 endpoint 白名单,带 revision 做乐观并发;存储写入走原子 tmp→rename(0600)。

安装与启用

资料中的安装步骤以 profile、bundles 与 cordis.patch.yml 为准(README 建议参考 dsh-health-panel 接线方式):

# profile 依赖 + bundles + cordis.patch.yml(参考 dsh-health-panel 接线)
pnpm dsh --profile web --dump-config   # 验证 dashboards 行合并
# 重启 dsh web(manifest touch 触发 daemon AUTO-RELOAD)

验证插件是否生效:

  1. 插件树:include:dashboards 且 fiberPhase=active。
  2. curl http://127.0.0.1:3080/dashboards/status。
  3. 在 Web 会话区切换到「看板」tab,查看 widget 网格。

开发侧可执行:

node --check index.mjs
DSH_SOURCE=/path/to/deepseek-harness node scripts/build.mjs   # client bundle(jsx automatic)

典型用法

  1. 快速确认聚合是否就绪:对本地 DSH Web 默认端口请求 status。
curl http://127.0.0.1:3080/dashboards/status
  1. 在 UI 中日常使用:打开任意会话,切到「看板」tab,对照 LLM 用量、节点矩阵与本机 macOS 探针;需要时在看板右上角编辑探针目标或 widget 布局。

  2. 启用 Uptime Kuma / Glances:在 cordis 配置中填写 kuma.url、kuma.token 或 glances.url,重启或触发重载后刷新看板。

  3. 查看 feed 摘要:确保 scheduler 已产出 ~/.dsh/scheduler-reports/feed-digest-*.md,看板中对应卡片会展示最新若干份。

  4. 关闭部分外呼(示例来自 README):

- id: dashboards
  config:
    egress:
      quotaApis: false   # zenmux/packy/deepseek/openrouter 余额 API
      diskAlert: false   # 飞书 webhook 推送

适用场景与注意

适合谁:已在用 DSH Web、需要把 los 用量/节点、本机 macOS 状态、自定义 HTTP/TCP 探活和(可选)Kuma/Glances、feed 摘要放在同一会话视图里的开发者或运维。

平台与依赖:macOS 原生探针面向 macOS;Glances 安装示例为 brew install glances。AI 额度中的 quota-axi 依赖各渠道本机登录态文件或 Keychain,未登录渠道会显示 auth 与恢复命令说明。

安全与权限:插件以当前 dsh 进程权限运行,会读 credentials、本机探针命令输出,并按配置对外发起 HTTP(含可选 Kuma、Glances、余额 API 等)。安装前请阅读仓库源码与 MIT 许可证,核对 cordis.patch.yml 与 egress 开关是否符合你的环境策略。widget 与探针目标的 PUT 带 endpoint 白名单与 revision 守卫,但仍应只在你信任的配置源下启用。

生态说明:DSH 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek、幻方无官方从属关系;本文事实来源为仓库 README 与 package 元数据。

结尾

dsh-dashboards 把 los 侧用量与节点、macOS 本机探针、可编辑的服务探活,以及可选的 Kuma、Glances 和 scheduler feed 摘要,收敛到 DSH 会话区的「看板」tab,并由同源 /dashboards/* API 供 curl 与 UI 共用。

  • 目录页:https://www.skillhub.cn/plugins/LosEcher/dsh-dashboards
  • 源码与完整 API 列表:https://github.com/LosEcher/dsh-dashboards
羽毛球分组比赛记分
小程序二维码

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

Xiaoye