← 文章

2026.10.09

04|什么是 OpenTelemetry?

目录

《可观测性工程》学习讲义 · 第 04 讲

OpenTelemetry,简称 OTel,是一套厂商中立的可观测性框架。它统一了应用如何产生、描述、关联和导出 Trace、Metric、Log 等遥测数据。

OTel 不是一个监控后台,也不是存储数据库。它通常不负责长期保存数据和展示仪表盘,而是解决应用到观测后端之间的标准化问题。

OTel包含什么

组成 作用
Specification 定义跨语言的行为和数据要求
API 让代码创建 Span、Metric 和上下文
SDK 采样、处理、聚合和导出数据
Semantic Conventions 统一字段名称、类型和含义
OTLP 统一遥测数据的传输协议
Collector 接收、处理并路由遥测数据
Instrumentation 为框架和组件提供自动或手工埋点

这些部分共同形成一条厂商中立的数据链路。应用可以使用同一套 OTel 埋点,再把数据发送到不同的开源或商业后端。

OpenTelemetry API与SDK分层

API表达,SDK执行

OTel 将 API 与 SDK 分开。业务代码通过 Tracer、Meter 等 API 创建 Span 或指标;SDK 在运行时决定如何采样、处理和导出。这样,业务库只依赖稳定 API,不需要绑定某个具体后端。

业务代码 → OTel API → OTel SDK → Processor → Exporter

自动埋点适合 HTTP、数据库和常见框架;手工埋点适合任务规划、工具选择、Memory 检索等业务语义。两者结合,才能同时看到技术调用和 Agent 行为。

一个简单案例

报告 Agent 调用搜索工具后生成摘要。HTTP 自动埋点能够看到一次网络请求,却不知道这次调用属于“资料检索”。手工创建 retrieval Span,并添加任务类型、工具名称和结果数量后,查询才具有业务意义。

现实挑战:埋点改变了系统行为

如果每次模型流式输出都生成大量事件,或者同步导出所有 Span,遥测本身可能增加延迟。Agent 原本偶发超时,接入埋点后变得更加严重,团队容易误以为业务代码退化。

现象—假设—证据—判断

现象:启用 OTel 后 P95 延迟增加 800 毫秒。假设包括模型变慢、Exporter 阻塞、事件数量过多。证据显示模型耗时未变,关闭同步 Exporter 后延迟恢复,队列持续积压。判断:SDK 配置不当,遥测导出阻塞了请求线程。

改进措施包括批处理、异步导出、限制事件大小,并观察 SDK 自身的丢弃和队列指标。

Harness也需要手工语义

仅靠自动埋点看不到规划循环、重试原因和终止条件。Harness 应显式记录步骤类型、父步骤、循环次数、状态转换和失败分类。否则 Trace 很完整,却只能显示一串 HTTP 调用。

小结

OTel 是连接应用和观测后端的标准化框架,不是观测后端本身。API 让代码表达“这里发生了什么”,SDK 决定“数据怎样被处理”。自动埋点提供基础覆盖,手工埋点补充 Agent 业务语义。

延伸阅读:OpenTelemetry官方规范


可观测性工程系列:上一篇:03|遥测的基础数据模型 · 下一篇:05|遥测数据怎样走到后端?

原文:LandX

本文所属主题:AI 工程、强化学习 枢纽 →

相关文章