DeepSeek Harness (dsh) 的设计理念是“一切皆插件”。在开发或使用 dsh 过程中,开发者常需要快速了解会话的 Token 使用量、首字生成时延(TTFT)、吞吐量(TPS)以及估算成本。dsh-tokstat 是一个由 kongjianguan 维护的插件,它直接读取本地的会话日志,提供两种形态的统计面板:Web 设置页插件和 Python TUI 仪表盘。
核心能力¶
插件通过 zstd 帧级增量解析还原指标,将散落在 ~/.dsh/sessions/ 下的日志转化为可分析的数据:
- 实时面板:提供两种形态。一种是 Web 设置页插件,在 dsh Web 设置页增加「统计」section,每 2 秒轮询更新;另一种是独立 Python TUI,提供 7 个视图的终端仪表盘。
- 多维视图:支持 切换 7 个视图,包括总览(Hero 卡 + 火花线)、趋势(按小时/天柱状图)、模型/供应商、会话、请求、错误。
- 详细指标:还原输入/输出/缓存 Tokens、TTFT(首 token 时延)、TPS、耗时、重试与失败、估算成本。支持按每小时/天统计,支持点击表头排序。
- 错误分析:支持重试原因分布(TRANSPORT/SERVER/TIMEOUT 等)及逐条重试事件、失败步骤的查看。
安装与启用¶
在 dsh 中安装插件到指定 profile(例如 web-dev):
dsh plugin --profile web-dev add https://github.com/kongjianguan/dsh-tokstat.git
安装后启动 dsh Web:
dsh --profile web-dev --port 3199
打开浏览器访问 http://127.0.0.1:3199/,进入 设置 → 统计 即可看到面板。
使用方式¶
Web 设置页插件¶
插件通过 dsh 进程内的 Node half 通过 sessionPersistence 读取会话日志并聚合,提供 /tokstat/stats 接口。面板无需额外服务,直接展示聚合后的统计信息。
Python TUI 运行¶
在仓库根目录下运行:
./run.sh # 默认范围:全部
./run.sh --range today # 只看今日
TUI 快捷键:
o t m p s r e:切换 总览/趋势/模型/供应商/会话/请求/错误 视图。1 2 3 4:切换时间范围(全部/今日/近7天/近30天)。f:聚焦请求日志过滤框(Esc退出)。space:暂停 / 继续自动刷新。
配置价格表¶
通过 YAML 文件配置各模型的价格(每百万 Token):
./run.sh --prices PATH
注意事项¶
- 版本兼容性:数据格式基于 dsh 0.1.0-rc.6 的会话日志结构验证。插件形态需要 Node ≥ 23.6;TUI 需要 Python 3.11+。
- 权限与安全:插件全程只读,仅读取
~/.dsh/sessions/下的session.jsonl.zstd与~/.dsh/settings.yaml,不修改任何 dsh 数据。TUI 全程离线运行,不联网,无遥测,不会读取或上传 API 密钥。 - 敏感数据:会话日志包含对话内容,请勿将包含敏感对话的
~/.dsh目录提交到任何仓库。 - 指标口径:TTFT 定义含排队/思考时间,长尾明显,请以 p50/p95 为准。部分会话的持久化日志只有批量 chunk,TTFT 为近似值(误差 <10%)。
- 成本说明:成本为估算,中转渠道价格需在
prices.yaml中自行配置。