目录
简介
OpenTelemetry 是一组 API、SDK、工具和集成,旨在创建和管理遥测数据,例如Trace、Metrics和Logs。该项目提供了一个与供应商无关的实现,可以将其配置为将遥测数据发送到您选择的后端。它支持各种流行的开源项目,包括 Jaeger 和 Prometheus。 主要解决的问题是观测性领域模型的统一,观测性数据收集的统一,观测性数据输出的统一。这些统一性主要体现在 API 规范,SDK 实现规范,接口规范等。OpenTelemetry 不会负责观测数据的存储,需要存储这些观测数据的 backend。OpenTelemetry 定义数据输出的规范,由各大厂商自行完成数据的持久化。
为什么使用Opentelemetry
在云原生技术堆栈中,分布式和多语言架构是常态。分布式架构引入了各种运营挑战,包括如何快速解决可用性和性能问题。这些挑战导致了可观察性的兴起。这就需要遥测数据来支持可观测性产品。传统上,遥测数据由开源项目或商业供应商提供,但是由于缺乏标准化,最终结果是缺乏数据可移植性,增加用户维护仪表的负担。OpenTelemetry 项目通过提供与供应商无关的单一解决方案来解决这些问题。该项目得到了云提供商、供应商和最终用户的广泛行业支持和采用。它提供以下能力:
- 每种语言都有一个与供应商无关的仪器库,支持自动和手动仪器。
- 可以以多种方式部署collector,包括作为代理或网关。
- 用于生成、发出、收集、处理和导出遥测数据的端到端实现。
- 完全控制您的数据,能够通过配置将数据并行发送到多个目的地。
- 开放标准语义约定,以确保与供应商无关的数据收集。
- 能够并行支持多种上下文传播格式,以帮助随着标准的发展进行迁移。
- 无论使用可观测性的哪个阶段,都可以使用Opentelemetry作为长期发展的方向,尤其时之前采用 OpenTracing 和 OpenCensus 项目,更容易接入 Open