dsh-otel:把 dsh-token-audit 彙總導出爲 OTLP/JSON 指標

前言

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。

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

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

小夜