将 OpenTelemetry 与 APM 结合使用
Elastic Stack Serverless
有关将 OpenTelemetry 与 Elastic 结合使用的完整概述,请浏览 OpenTelemetry 的 Elastic 发行版。
OpenTelemetry 是一组 API、SDK、工具和集成,可用于捕获和管理来自您的服务和应用程序的遥测数据。
Elastic 与 OpenTelemetry 集成,使您可以重用现有的工具来轻松地将可观测性数据发送到 Elastic Stack。 有几种将 OpenTelemetry 与 Elastic Stack 集成的方法
- OpenTelemetry 语言 SDK 的 Elastic 发行版
- 上游 OpenTelemetry API/SDK + Elastic APM Agent
- 上游 OpenTelemetry Collector 和语言 SDK
- AWS Lambda collector exporter
Elastic 提供了 OpenTelemetry 语言 SDK 的几个发行版。 发行版是上游 OpenTelemetry 存储库的自定义版本。 每个 OpenTelemetry 的 Elastic 发行版都是 OpenTelemetry 语言 SDK的自定义版本。

使用 OpenTelemetry 语言 SDK 的 Elastic 发行版,您可以访问其自定义的 OpenTelemetry SDK 的所有功能,以及
- 您可以在 Elastic 团队提供的改进和错误修复之前在 OpenTelemetry 存储库中的上游中可用。
- 发行版预先配置了跟踪和指标信号的收集,应用了一些有主见的默认值,例如默认收集哪些源。
开始使用 OpenTelemetry 语言 SDK 的 Elastic 发行版
- OpenTelemetry Java 的 Elastic 发行版 →
- OpenTelemetry .NET 的 Elastic 发行版 →
- OpenTelemetry Node.js 的 Elastic 发行版 →
- OpenTelemetry Python 的 Elastic 发行版 →
- OpenTelemetry PHP 的 Elastic 发行版 →
有关 OpenTelemetry 发行版的一般详细信息,请访问 OpenTelemetry 文档。
将 OpenTelemetry API/SDK 与 Elastic APM Agent 结合使用,以将 OpenTelemetry API 调用转换为 Elastic APM API 调用。

这允许您重用现有的 OpenTelemetry 工具来创建 Elastic APM 事务和跨度 — 避免供应商锁定和不必重做手动工具。
但是,并非在使用此方法时支持 OpenTelemetry API 的所有功能,并且并非所有 Elastic APM Agent 都支持此方法。
查找有关如何将 OpenTelemetry API 或 SDK 与 Elastic APM Agent 结合使用以及 APM Agent 文档中支持哪些 OpenTelemetry API 功能的更多详细信息
Elastic Stack 本机支持 OpenTelemetry 协议 (OTLP)。 这意味着从您的应用程序和基础设施收集的跟踪数据和指标可以通过 OpenTelemetry Collector 或 OpenTelemetry 语言 SDK 发送到 Elastic Stack。
您可以设置一个 OpenTelemetry Collector,使用一个 OpenTelemetry 语言 SDK 来检测您的应用程序,该 SDK 将数据发送到收集器,并使用收集器来处理数据并将数据导出到 APM Server 或托管摄取服务。

也可以从上游 OpenTelemetry SDK 将数据直接发送到 APM Server 或托管摄取服务。 您可能会在开发期间或监控小规模应用程序时执行此操作。 在 OpenTelemetry 文档中阅读有关何时使用收集器的更多信息。
当您需要检测 Elastic 未提供解决方案的技术时,此方法非常有效。 例如,如果您想检测 C 或 C++,您可以使用 OpenTelemetry C++ 客户端。
但是,当使用 OpenTelemetry 构建和维护的收集器和语言 SDK 时,存在一些限制,包括
- Elastic 无法提供有关如何使用上游 OpenTelemetry 工具的实施支持。
- 您将无法访问 Elastic 企业 APM 功能。
- 您可能会遇到性能效率问题。
有关与使用上游 OpenTelemetry 工具相关的限制的更多信息,请参阅限制。
开始使用上游 OpenTelemetry Collectors 和语言 SDK →
可以使用 OpenTelemetry 检测 AWS Lambda 函数,并使用 Elastic Observability 或 Elastic Observability Serverless 进行监控。
要开始使用,请按照官方 AWS Distro for OpenTelemetry Lambda 文档进行操作,并将 OpenTelemetry Collector 配置为将跟踪和指标输出到您的 Elastic 集群