【可观测性工程】OpenTelemetry 深入:SDK、Collector、语义约定与版本演进

💡 原文中文,约36200字,阅读约需87分钟。
📝

内容提要

可观测性工程经历了从“每个后端一套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接入。

➡️

继续阅读