Components
OpenTelemetry目前由几个主要组件组成:
- 跨语言规范
- 用于收集、转换和导出telemetry数据的工具
- 每种语言SDK
- 自动仪表和控制包
OpenTelemetry使您无需特定于供应商的SDK和用于生成和导出telemetry数据的工具。
1.Specification
描述所有实现的跨语言需求和期望。除术语定义外,本规范还定义了以下内容:
- API:定义用于生成和关联tracing, metrics, 和 logging数据的数据类型和操作。
- SDK:定义API语言特定实现的需求。这里还定义了配置、数据处理和导出概念。
- Data:定义telemetry后端可以支持的OpenTelemetry协议(OTLP)和供应商无关的语义约定。
有关详细信息,请参阅规范Specification。
此外,在 proto repository 中可以找到大量注释的API概念protobuf接口文件。
2.Collector
OpenTelemetry Collector是一个与供应商无关的代理,可以接收、处理和导出telemetry数据。它支持接收多种格式的telemetry数据(例如OTLP、Jaeger、Prometheus以及许多商业/专有工具),并将数据发送到一个或多个后端。它还支持在导出telemetry数据之前对其进行处理和过滤。Collector contrib包支持更多数据格式和供应商后端。
For more information, see Data Collection.
3.Language SDKs
OpenTelemetry还具有语言SDK,允许您使用OpenTelemetry API以您选择的语言生成telemetry数据,并将数据导出到首选后端。这些SDK还允许您合并公共库和框架的自动检测,您可以使用这些库和框架连接到应用程序中的手动检测。供应商通常发布语言SDK,以简化向后端的导出。
For more information, see Instrumenting.
4.Automatic Instrumentation
OpenTelemetry支持大量组件,这些组件可从受支持语言的流行库和框架中生成相关telemetry数据。例如,来自HTTP库的入站和出站HTTP请求将生成有关这些请求的数据。使用自动检测可能会因语言而异,其中一种可能更喜欢或需要使用与应用程序一起加载的组件,另一种可能希望您在代码库中显式地引入包。
这是一个长期目标,即流行的库被编写为可开箱即用,这样就不需要引入单独的组件。
For more information, see Instrumenting Libraries.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类