dsh-otel: Export dsh-token-audit Aggregated Data as OTLP/JSON Metrics

前言

DeepSeek Harness(DSH)里可以用成本相关能力做用量查看,但缺少面向监控系统、可机读导出的通路。若要把 token、会话、调用次数和费用汇总交给 Grafana、Langfuse 或任意支持 JSON 的 OpenTelemetry Collector,通常需要自行解析审计 JSON 并手工拼指标。

dsh-otel(仓库 lengrufeng2008/dsh-otel)做的是汇总级转换:读取 dsh-token-audit 输出的 JSON summary,写成 OTLP/JSON metrics。它不生成逐轮对话或逐工具的 span,也不内置网络上传——只写文件,由你的采集端负责上报。

维护者为 lengrufeng2008,社区目录分类为 admin-security;当前 GitHub 星标为 0。许可证 MIT,版本 0.1.0(见仓库 package.json),运行需 Node.js >= 20。

这是什么

一句话:dsh-otel 是 DSH 生态里的观测导出插件,把 token 审计 JSON 转成标准 OTLP/JSON 指标,便于接入现有可观测性栈。

设计边界在 README 里写得很清楚:继承审计里的计价结果,不重新定价;仅 OTLP/JSON,不是 protobuf;无实时流式、无内置仪表盘。若审计 JSON 里含敏感标题或路径,导出前应自行脱敏。

实现思路受 claude-code-otel 启发,仓库说明未复制其源码,详见 NOTICE.md。

核心功能

汇总指标字段

插件从 audit summary 映射出一组固定 metric 名,便于在 Grafana 等侧统一建模:

  • 费用与会话:dsh.cost.cny,dsh.sessions,dsh.calls
  • Token 分项:dsh.tokens.input,dsh.tokens.cache_read,dsh.tokens.output
  • 投影与峰谷:dsh.cost.projected_monthly_cny,dsh.cost.idle_cny,dsh.cost.peak_cny
  • 按模型:dsh.model.cost.cny,dsh.model.calls,dsh.model.tokens.output

两种使用入口

  1. 命令行管道:先由 dsh-token-audit 生成 JSON,再用 node bin/dsh-otel.mjs 写出 OTLP JSON 文件。
  2. DSH 内调用:对已有 audit.json 使用 otel_export,并指定 format=summary(见下文典型用法)。

package.json 同时暴露 npm 包入口(如 ./plugin、./otlp),并带有 dsh.bundle.patch 配置,表明其以 DSH 插件形态打包;具体启用方式以你本地的 DSH 插件管理为准。

安装与启用

已抓取资料中的 README 未给出形如 dsh plugin add … 的统一安装命令,此处不凭插件名拼接命令。你可以:

  1. 从社区插件目录页 skillhub.cn/plugins/lengrufeng2008/dsh-otel 查看该插件的说明与安装指引(目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系)。
  2. 在已安装插件的工作区中,确保 Node.js 版本满足 >=20,并可执行 bin/dsh-otel.mjs(npm 包名 dsh-otel,type: module)。

插件在 DSH 进程权限下运行。安装或启用前,应自行阅读仓库源码与 MIT 许可证,确认符合你的安全与合规要求。

典型用法

下面介绍 README 中的可复现流水线。

1. 生成审计 JSON

先用 DSH 自带的 token 审计工具导出全量 summary,写入文件:

dsh-token-audit --all --format json > audit.json

这一步得到的是后续转换的唯一输入;计价与汇总口径与审计工具一致。

2. 转换为 OTLP/JSON

在同一机器上用 Node 执行插件 CLI,指定输入与输出路径:

node bin/dsh-otel.mjs --input audit.json --output otlp.json

完成后 otlp.json 即为 OTLP/JSON metrics,交由你的 Collector 或兼容后端 ingest。

3. 在 DSH 内导出(summary 格式)

若已在 DSH 环境中挂载该插件,可对 audit.json 使用文档所述能力:

Use otel_export on audit.json, format=summary.

语义与 CLI 一致:summary 指标,无逐轮 span。

4. 本地验证

仓库提供 Node 内置测试 runner:

npm test

对应脚本为 node --test test/*.test.mjs(见 package.json 的 scripts.test)。

适用场景与注意

适合谁

  • 已在 DSH 中用 dsh-token-audit 做成本/用量汇总,希望把同一套数字接入 Grafana、Langfuse 或 OTLP JSON 采集链路的开发者或平台同学。
  • 只需要汇总 observability,不需要对话级 tracing 的团队。

不适合或做不到的事

  • 需要 per-turn、per-tool span 或实时流式监控:插件明确不支持。
  • 期望插件代你联网上报:它只写 JSON,上传由外部 Collector 完成。
  • 想用 OTLP protobuf:当前仅 OTLP/JSON。

运维与安全

  • 指标继承审计 JSON 的定价与内容;敏感字段请在导出前 redact。
  • 分类为 admin-security,仍建议把插件当作高权限扩展对待:安装前审源码,生产环境控制谁可以执行 otel_export 或 CLI。

结尾

dsh-otel 补的是 DSH 成本看板与外部监控系统之间的机读桥梁:一条 audit summary,一份 OTLP/JSON metrics 文件,无网络、无 span 膨胀。若要进一步了解说明与更新,可看社区目录 https://www.skillhub.cn/plugins/lengrufeng2008/dsh-otel 与 GitHub 仓库 https://github.com/lengrufeng2008/dsh-otel。

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

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

Xiaoye