什么是 OpenTelemetry?
OpenTelemetry 是
一个可观测性框架和工具集,旨在促进
开源,并且与厂商和工具无关,这意味着它可以与各种可观测性后端一起使用,包括Jaeger和Prometheus等开源工具,以及商业产品。OpenTelemetry本身并不是一个可观测性后端。
OpenTelemetry 的主要目标是,无论使用何种编程语言、基础设施和运行时环境,都能轻松地对您的应用程序和系统进行检测。
遥测数据的后端(存储)和前端(可视化)被有意地留给其他工具处理。
有关本系列中的更多视频和附加资源,请参阅下一步?
什么是可观测性?
可观测性是指通过检查系统的输出来理解其内部状态的能力。在软件的上下文中,这意味着能够通过检查其遥测数据(包括跟踪、指标和日志)来理解系统的内部状态。
要使系统可观测,它必须被检测。也就是说,代码必须发出跟踪、指标或日志。然后必须将检测到的数据发送到可观测性后端。
为什么选择 OpenTelemetry?
随着云计算、微服务架构的兴起以及日益复杂的业务需求,对软件和基础设施可观测性的需求比以往任何时候都更加迫切。
OpenTelemetry 遵循两个关键原则,满足了对可观测性的需求:
- 您拥有生成的数据。没有供应商锁定。
- 您只需要学习一套 API 和约定。
这两大原则相结合,为团队和组织在当今的现代计算世界中提供了所需的灵活性。
如果您想了解更多信息,请查看 OpenTelemetry 的使命、愿景和价值观。
OpenTelemetry 的主要组件
OpenTelemetry 由以下主要组件组成:
- 所有组件的规范
- 定义遥测数据形状的标准协议
- 定义常见遥测数据类型标准命名方案的语义约定
- 定义如何生成遥测数据的 API
- 实现规范、API 和遥测数据导出的语言 SDK
- 实现常见库和框架检测的库生态系统
- 无需代码更改即可生成遥测数据的自动检测组件
- 接收、处理和导出遥测数据的代理 - OpenTelemetry Collector
- 各种其他工具,例如Kubernetes 的 OpenTelemetry Operator、OpenTelemetry Helm Charts以及FaaS 的社区资产
OpenTelemetry 被广泛的库、服务和应用程序所使用,这些应用程序集成了 OpenTelemetry 以默认提供可观测性。
OpenTelemetry 得到众多供应商的支持,其中许多供应商为 OpenTelemetry 提供商业支持并直接为该项目做出贡献。
可扩展性
OpenTelemetry 被设计为可扩展的。以下是一些可扩展的示例:
- 向 OpenTelemetry Collector 添加接收器,以支持来自自定义源的遥测数据
- 将自定义检测库加载到 SDK 中
- 创建针对特定用例量身定制的 SDK 或 Collector 分发版
- 为尚不支持 OpenTelemetry 协议 (OTLP) 的自定义后端创建新的导出器
- 为非标准上下文传播格式创建自定义传播器
尽管大多数用户可能不需要扩展 OpenTelemetry,但该项目被设计为几乎可以在每个级别上实现这一点。
历史
OpenTelemetry 是一个云原生计算基金会 (CNCF) 项目,它是两个早期项目 OpenTracing 和 OpenCensus 合并的结果。这两个项目都是为了解决同一个问题而创建的:缺乏如何检测代码并将遥测数据发送到可观测性后端 Thus of a standard。由于这两个项目都无法独立解决问题,因此它们合并成立了 OpenTelemetry,结合了各自的优势,并提供了统一的解决方案。
如果您目前正在使用 OpenTracing 或 OpenCensus,可以在迁移指南中了解如何迁移到 OpenTelemetry。
下一步?
- 入门 — 直接开始!
- 了解OpenTelemetry 概念。
- 观看视频,包括 OTel 入门指南或其他播放列表。
- 注册培训,包括免费课程OpenTelemetry 入门。