【可观测性工程】OpenTelemetry 深入:SDK、Collector、语义约定与版本演进
内容提要
可观测性工程经历了从“每个后端一套SDK”到“一套信号采集标准+多个后端”的转变,OpenTelemetry(OTel)成为关键。OTel统一了链路追踪、指标和日志的模型与协议,解耦了采集层。文章讨论了OTel的架构、协议细节及在国内厂商的应用,强调了将OTel整合进现有可观测性体系的重要性。
关键要点
-
可观测性工程经历了从“每个后端一套SDK”到“一套信号采集标准+多个后端”的转变。
-
OpenTelemetry(OTel)统一了链路追踪、指标和日志的模型与协议,解耦了采集层。
-
OTel的架构包括API层、SDK层、Instrumentation Library层、Exporter层和Collector层。
-
OTLP是OTel项目唯一官方推荐的协议,支持gRPC和HTTP两种传输方式。
-
语义约定定义了属性的命名和类型,确保跨团队和跨厂商的数据一致性。
-
SDK的生命周期管理包括Provider、Processor和Exporter三个部分。
-
Collector架构由Receivers、Processors、Exporters、Connectors、Extensions和Pipelines六大组件组成。
-
自动埋点技术在Java、Python、Go和Node.js等语言中有不同的实现方式。
-
尾采样通过聚合同一trace的span来决定是否保留,能够按质量进行采样。
-
多租户架构支持不同租户间流量互不影响,并能按租户做计费或配额。
-
OTel的稳定性级别分为Stable、Beta、Alpha和Development/Experimental。
-
国内厂商如阿里云ARMS、观测云和夜莺等已支持OTel接入,提供了多种接入方式和兼容性。
延伸问答
OpenTelemetry的主要功能是什么?
OpenTelemetry统一了链路追踪、指标和日志的模型与协议,解耦了采集层。
OTLP协议的传输方式有哪些?
OTLP协议支持gRPC和HTTP两种传输方式。
OpenTelemetry的架构包含哪些层次?
OpenTelemetry的架构包括API层、SDK层、Instrumentation Library层、Exporter层和Collector层。
语义约定在OpenTelemetry中有什么重要性?
语义约定定义了属性的命名和类型,确保跨团队和跨厂商的数据一致性。
如何管理OpenTelemetry SDK的生命周期?
SDK的生命周期管理包括Provider、Processor和Exporter三个部分。
国内有哪些厂商支持OpenTelemetry?
国内厂商如阿里云ARMS、观测云和夜莺等已支持OTel接入。