与 Jaeger 集成
编辑与 Jaeger 集成
编辑对 Jaeger 的支持已弃用,并将在未来版本的 Elastic APM 中移除。 Jaeger 客户端已被弃用,取而代之的是 OpenTelemetry SDK,并且 OpenTelemetry 已从其规范中移除了所有 Jaeger 导出器。
Elastic APM 与 Jaeger 集成,这是一个开源的分布式追踪系统。此集成允许具有现有 Jaeger 设置的用户从默认的 Jaeger 后端切换到 Elastic Stack。最重要的是,您的应用程序代码中不需要进行任何检测更改。
支持的架构
编辑Jaeger 架构支持不同的数据格式和传输协议,这些协议定义了如何将数据发送到收集器。Elastic APM 作为 Jaeger 收集器,支持通过 gRPC 与 Jaeger 代理 进行通信。
有关 Jaeger 架构的更多信息,请参阅 Jaeger 文档。
开始使用
编辑通过三个步骤将您预先存在的 Jaeger 设置连接到 Elastic APM
此集成存在一些注意事项。
APM 集成在与 Elastic APM 代理协议相同的主机和端口上提供 Jaeger gRPC。
- 登录 Elastic Cloud 并选择您的部署。
- 在 Kibana 中,在主菜单中查找 集成,或使用全局搜索字段。
- 选择 Elastic APM。如果已安装该集成,请在策略选项卡下选择 操作 > 编辑集成。如果尚未安装该集成,请选择 添加 Elastic APM。复制 URL。如果您使用的是代理授权,请同时复制密钥令牌。
-
将 APM 集成配置为您的 Jaeger 代理的收集器。
在撰写本文时,Jaeger 代理二进制文件提供了以下 CLI 标志,可用于启用 TLS、输出到 Elastic Cloud 以及设置 APM 集成密钥令牌
--reporter.grpc.tls.enabled=true --reporter.grpc.host-port=<apm-url:443> --agent.tags="elastic-apm-auth=Bearer <secret-token>"
对于等效的环境变量,将所有字母更改为大写,并将标点符号替换为下划线 (_
)。有关更多信息,请参阅 Jaeger CLI 标志文档。
-
将 APM 集成配置为您的 Jaeger 代理的收集器。在 Kibana 中,在主菜单中查找 集成,或使用全局搜索字段。选择 Elastic APM。如果已安装该集成,请在策略选项卡下选择 操作 > 编辑集成。如果尚未安装该集成,请选择 添加 Elastic APM。复制主机。如果您使用的是代理授权,请同时复制密钥令牌。
在撰写本文时,Jaeger 代理二进制文件提供了
--reporter.grpc.host-port
CLI 标志。使用它来定义 APM 集成正在监听的主机和端口--reporter.grpc.host-port=<apm-endpoint:8200>
-
(可选)启用加密
当为 APM 集成启用 TLS 时,Jaeger 代理也必须启用 TLS 通信
--reporter.grpc.tls.enabled=true
-
(可选)启用基于令牌的授权
可以使用密钥令牌或 API 密钥来确保只有经过授权的 Jaeger 代理才能将数据发送到 APM 集成。启用后,使用代理级别标签来授权 Jaeger 代理与 APM 服务器的通信
--agent.tags="elastic-apm-auth=Bearer <secret-token>"
对于等效的环境变量,将所有字母更改为大写,并将标点符号替换为下划线 (_
)。有关更多信息,请参阅 Jaeger CLI 标志文档。
APM 集成支持概率采样,可用于减少代理收集和发送的数据量。概率采样根据配置的采样值做出随机采样决策。例如,值 .2
表示将对 20% 的跟踪进行采样。
有两种不同的方法来配置 Jaeger 代理的采样率
使用 APM 代理中央配置的中央采样允许 Jaeger 客户端轮询 APM 服务器以获取采样率。这意味着可以按服务和按环境动态配置采样率。有关更多信息,请参阅 中央配置。
如果您无权访问应用程序 UI,则需要更改 Jaeger 客户端的 sampler.type
和 sampler.param
。这使您可以在每个 Jaeger 客户端中本地设置采样配置。有关更多信息,请参阅官方 Jaeger 采样文档。
就是这样!现在可以在应用程序 UI 中查看从 Jaeger 客户端发送到 APM 服务器的数据。
注意事项
编辑您应该注意 Elastic APM 和 Jaeger 之间的一些限制和差异。
Jaeger 集成限制
- 由于 Jaeger 有自己的跟踪上下文标头,并且当前不支持 W3C 跟踪上下文标头,因此无法混合使用 Elastic 的 APM 代理和 Jaeger 的客户端。
- Elastic APM 仅支持概率采样。
APM 代理和 Jaeger 客户端之间的差异