dsh-otel
在终端中运行以下命令:
dsh plugin install jwilson411/dsh-otel
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 中执行 dsh plugin install jwilson411/dsh-otel 即可安装,源码地址为 https://github.com/jwilson411/dsh-otel,安装后在 cordis.patch.yml 中将 exporter 设为 stdout 或 otlp-http 即可启用。
插件介绍
DeepSeek Harness 每次运行都会留下一份完整的会话日志,Jaeger 和 Grafana Tempo 也早已知道如何把一条 trace 画出来——缺的只是中间那层翻译。dsh-otel 做的事情就一件事:读这份日志,按 turn、step、工具调用各拆出一个 span,挂成一棵 trace,然后发给你已经部署好的 OTLP/HTTP 收集器,或者直接打到 stdout。它不观察运行时、不缓冲、不采样,也不往 span 里塞提示词和工具参数——span 上只有名称、id、耗时和日志本身报告的 token 数。
ID 全部由 sha256 派生,同一份日志反复导出会得到完全相同的树,收集器宕机后补发就是修复缺口而不是制造重复。日志里缺了半行 JSON、bracket 没闭合、step 上面没有 turn——这些情况插件都能兜住,不会让你丢 trace。整个 OTLP/JSON 是手写的,运行时不依赖任何 OpenTelemetry SDK,CLI 甚至可以在零依赖的 checkout 里直接跑。
适合已经在跑 Jaeger、Phoenix 或 Grafana Tempo 的 ML 工程师和 DevOps 同学:你不需要额外搭一套产品,只要把 exporter 指过去,harness 的每次运行就自动出现在你熟悉的 trace 视图里。当 harness 本身出了状况、你只想把那份日志的链路抢救出来看时,CLI 的零依赖特性也让它成为最轻量的调试手段。
使用场景
- 将 Harness 每次运行的 turn、step、工具调用拆成 span,推入已有 Jaeger 或 Grafana Tempo 查看完整调用链
- harness 本身故障时,用零依赖 CLI 把会话日志导出为 OTLP 文档,抢救出该次运行的结构时序
- 把 token 用量和耗时数据纳入现有 OTLP 收集管线,与业务侧 trace 并排对比
适合人员
- 已在运行 Jaeger、Phoenix 或 Grafana Tempo 的 ML 工程师
- 希望不引入额外 OpenTelemetry SDK 即可获得 LLM 推理链路数据的 DevOps 团队
- harness 出问题时只想快速拿到一次运行完整时序的调试者