OpenTelemetry(OTel)

云原生可观测性的开放标准,统一日志、指标与追踪的采集与传输协议。

生产方式:人写签发:晓黎学习复核:2026年9月21日被 1 个词条引用

一句话定义

OpenTelemetry = 一套开放的可观测性标准与工具集,用统一的方式采集和传输日志、指标与追踪数据,使应用不绑定特定观测后端。

解决什么问题

没有 OTel 时,每个观测后端有自己的 SDK 和协议。更换后端意味着改代码。

无 OTel:
  App → SDK-A → 后端 A
  App → SDK-B → 后端 B     (换后端要改代码)

有 OTel:
  App → OTel SDK → OTel Collector → 任意后端
                                    ├── Loki
                                    ├── Elasticsearch
                                    └── 自建

三大信号

信号内容回答的问题
Logs结构化事件记录发生了什么
Metrics可聚合数值有多少、趋势如何
Traces请求链路与各段耗时慢在哪里

在 Agent Harness 中的体现

DeepSeek Harness 把遥测做成能力接缝,Provider 直接使用 OTel:

dsh-session-telemetry         ← Service Definition(ctx.sessionTelemetry)
    ↓
dsh-session-telemetry-otel    ← Service Provider,原样配置的 OTel JS SDK
    ↓
外部观测后端

设计要点:Harness 不自建观测后端,接入标准生态。

同时明确了一条边界:

边界公理(harness 的职责止于 emit();批处理、重试、排队与丢失策略都属于上报 SDK)

即:**Harness 只负责产生遥测记录,传输可靠性交给 OTel SDK。**这避免了在 Harness 里重复实现队列、重试和降级逻辑。

Trace 与 Span

追踪的核心结构是 trace 与 span:

trace(一次完整请求)
├── span: prompt-assembly
├── span: llm-request
├── span: tool/call
│   └── span: approval-request
└── span: tool/result

每个 span 记录起止时间、属性和状态。通过 span 树能定位「这次任务 80% 的时间花在审批等待上」。

相关

互链

链接来自概念卡正文里的双链,编译时能解到本期词条集的才成为站内链接。

反链(1)

出现在哪些课时里(0)

判据与「课时正文里能不能点出来」是同一个:那一节确实提到了它。点课时走当前页跳转, 它是导航,不是词条链接。

还没有课时讲到这一条。它是词条跑在课程前面的那一部分,不是错链。

关联图

只画这一条与它直接相连的词条,边与上面两区同源。可拖拽、可缩放,点节点是新标签。

出处

路径是本地知识库(Obsidian 库)里的位置,正文与概念卡逐字对应。

  • 概念卡原文OpenTelemetry(OTel)03_RESOURCES/概念/open-telemetry.md
  • 所属知识地图栏目概念页索引 · 可观测性与可靠性03_RESOURCES/概念/Index.md
  • 正文引用的知识库笔记第 17 讲 可观测性02_AREAS/AI开发/Harness Engineering/Agent Harness 课程/17-可观测性:如何知道系统正在发生什么.md

编译入库:2026年11月2日。词条由知识库编译而来, 修正要回到概念卡改,再重新编译。