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