与 Jaeger 集成
编辑与 Jaeger 集成
编辑对 Jaeger 的支持已弃用,将在 Elastic APM 的未来版本中移除。 Jaeger 客户端已弃用,推荐使用 OpenTelemetry SDK,并且 OpenTelemetry 已从其 规范 中删除所有 Jaeger 导出器。
Elastic APM 与 Jaeger 集成,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 客户端之间的差异