使用 Jaeger Agent 的优点

Vip*_*non 6 deployment setup-deployment devops opentracing jaeger

所以我正在探索Jaeger for Tracing,我发现我们可以直接通过HTTP(端口:14268)将span从客户端发送到收集器,如果是这样那么使用jaeger代理有什么优势。

何时采用 Jaeger Agent 方法以及何时采用直接 HTTP 方法。使用直接方法收集器有什么缺点

Yur*_*uro 6

来自官方常见问题解答(https://www.jaegertracing.io/docs/latest/faq/#do-i-need-to-run-jaeger-agent):

jaeger-agent并不总是必要的。Jaeger 客户端库可以配置为将跟踪数据直接导出到jaeger-collector. jaeger-agent不过,建议跑步的原因如下:

  • 如果我们希望 SDK 库将跟踪数据直接发送到收集器,我们必须向它们提供 HTTP 端点的 URL。这意味着我们的应用程序需要包含此参数的附加配置,特别是当我们运行多个 Jaeger 安装(例如在不同的可用区或区域)并希望将数据发送到附近的安装时。相反,当使用代理时,库不需要额外的配置,因为代理始终可以通过本地主机访问。它充当边车并将请求代理给适当的收集器。

  • 可以将代理配置为通过向范围添加额外的标签(例如当前区域、区域等)来使用特定于基础设施的元数据来丰富跟踪数据。如果代理作为主机守护程序运行,它将由所有应用程序共享在同一主机上运行。如果代理作为真正的 sidecar 运行,即每个应用程序一个,它可以提供附加功能,例如强身份验证、多租户(请参阅此博客文章)、pod 名称等。

  • 代理允许对收集器实施流量控制。如果数据中心中有数千台主机,每台主机都运行许多应用程序,并且每个应用程序都直接向收集器发送数据,则每个收集器可能需要处理太多打开的连接。代理可以用更少的连接来负载平衡此流量。