OpenTelemetry项目是由很多个组件构成的。这些组件作为一个单一的实现并提供简单的接入方式。以确保与供应商无关的解决方案。将来还会增加更多的组件。
Proto
与语言无关的接口类型。它定义了每个仪表库、收集器、公共部分和资源的数据源。Proto文件被广泛讨论。有关更多信息,请参见 proto repository 。
规范
描述所有跨语言需求和期望的实现。除了术语的定义之外,规范还定义了以下内容:
- API:用于产生遥测数据。定义每个数据源以及其他方面,包括 baggage 和 propagators。
- SDK:具有处理和导出功能的API的实现。定义每个数据源以及其他方面,包括资源和配置。
- Data:定义语义约定,以提供与供应商无关的实现以及OpenTelemetry协议(OTLP)。
更多信息可以看 官方规范
收集器
OpenTelemetry收集器提供了一个与供应商无关的实现,用于接收、处理和导出遥测数据。它消除了运行、操作和维护多个代理/收集器的需要,以支持开源的可观察性数据格式(例如Jaeger、Prometheus等)。发送到一个或多个开源或商业的后端服务。Collector是导出遥测数据的默认仪器库。
更多信息可以看 收集器
仪器库
OpenTelemetry项目的灵感来自于让每个库和应用程序直接调用OpenTelemetry API,从而使它们可以立即被观察到。在此之前,需要一个单独的库来注入这些信息。为另一个库提供可观测性的库统称为仪器库。OpenTelemetry项目为多种语言提供了一个工具库。所有检测库都支持手动(代码修改)检测,还有几个支持自动(字节码)检测。
更多信息可以看 仪器库