将 OpenTelemetry 与 APM 一起使用

编辑

要全面了解如何将 OpenTelemetry 与 Elastic 一起使用,请浏览 Elastic OpenTelemetry 发行版

OpenTelemetry 是一组 API、SDK、工具和集成,可用于捕获和管理来自您的服务和应用程序的遥测数据。

Elastic 与 OpenTelemetry 集成,允许您重用现有的检测来轻松地将可观测性数据发送到 Elastic Stack。有几种方法可以将 OpenTelemetry 与 Elastic Stack 集成

Elastic OpenTelemetry 语言 SDK 发行版
编辑

一些 Elastic OpenTelemetry 发行版尚未建议用于生产环境。功能可能会在未来的版本中更改或删除。Alpha 版本不受官方 GA 功能的支持 SLA 的约束。

Elastic 提供了几种 OpenTelemetry 语言 SDK 的发行版。发行版是上游 OpenTelemetry 存储库的自定义版本。每个 Elastic OpenTelemetry 发行版都是一个 OpenTelemetry 语言 SDK 的自定义版本。

apm otel distro

使用 Elastic OpenTelemetry 语言 SDK 发行版,您可以访问它自定义的 OpenTelemetry SDK 的所有功能,以及

  • 您可以在更改在上游 OpenTelemetry 存储库中可用之前,获取 Elastic 团队贡献的 SDK 改进和错误修复。
  • 发行版预先配置了跟踪和指标信号的收集,应用了一些固定的默认值,例如默认收集哪些源。

开始使用 Elastic OpenTelemetry 语言 SDK 发行版

有关 OpenTelemetry 发行版的一般详细信息,请访问 OpenTelemetry 文档

上游 OpenTelemetry API/SDK + Elastic APM 代理
编辑

将 OpenTelemetry API/SDK 与 Elastic APM 代理 一起使用,以将 OpenTelemetry API 调用转换为 Elastic APM API 调用。

apm otel api sdk elastic agent

这允许您重用现有的 OpenTelemetry 检测来创建 Elastic APM 事务和跨度——避免供应商锁定,无需重新进行手动检测。

但是,使用此方法时,并非所有 OpenTelemetry API 的功能都受支持,并且并非所有 Elastic APM 代理都支持此方法。

在 APM 代理文档中查找有关如何将 OpenTelemetry API 或 SDK 与 Elastic APM 代理一起使用以及支持哪些 OpenTelemetry API 功能的更多详细信息

上游 OpenTelemetry 收集器和语言 SDK
编辑

Elastic Stack 原生支持 OpenTelemetry 协议 (OTLP)。这意味着由 OpenTelemetry 收集器或 OpenTelemetry 语言 SDK 从您的应用程序和基础设施收集的跟踪数据和指标可以发送到 Elastic Stack。

您可以设置一个 OpenTelemetry 收集器,使用一个 OpenTelemetry 语言 SDK 来检测您的应用程序,该 SDK 将数据发送到收集器,并使用收集器处理数据并将其导出到 APM 服务器。

apm otel api sdk collector

也可以直接从上游 OpenTelemetry SDK 将数据发送到 APM 服务器。您可能在开发期间或在监视小型应用程序时执行此操作。在 OpenTelemetry 文档中阅读有关何时使用收集器的更多信息。

当您需要检测 Elastic 没有提供解决方案的技术时,此方法效果很好。例如,如果您要检测 C 或 C++,则可以使用 OpenTelemetry C++ 客户端

但是,使用 OpenTelemetry 构建和维护的收集器和语言 SDK 时,存在一些限制,包括

  • Elastic 无法提供有关如何使用上游 OpenTelemetry 工具的实现支持。
  • 您将无法访问 Elastic 企业 APM 功能。
  • 您可能会遇到性能效率问题。

有关与使用上游 OpenTelemetry 工具相关的限制的更多信息,请参阅 限制

开始使用上游 OpenTelemetry 收集器和语言 SDK →

AWS Lambda 收集器导出器
编辑

可以使用 OpenTelemetry 检测 AWS Lambda 函数,并使用 Elastic 可观测性进行监控。

要开始使用,请按照 AWS Distro for OpenTelemetry Lambda 的官方文档进行操作,并将 OpenTelemetry 收集器配置为将跟踪和指标输出到您的 Elastic 集群

开始使用 AWS Distro for OpenTelemetry Lambda popout