【问题标题】:Advantages of using Jaeger Agent [closed]使用 Jaeger 代理的优势 [关闭]
【发布时间】:2019-12-03 08:53:57
【问题描述】:

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

何时使用 Jaeger 代理方法以及何时使用直接 HTTP 方法。对收集器使用直接方法的缺点是什么

【问题讨论】:

  • 这是一个关于 Jaeger 后端设计选择的有效问题。

标签: deployment devops setup-deployment opentracing jaeger


【解决方案1】:

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

jaeger-agent 并不总是必要的。 Jaeger 客户端库可以配置为将跟踪数据直接导出到jaeger-collector。但是,以下是推荐运行jaeger-agent 的原因:

  • 如果我们希望 Jaeger 客户端库直接向收集器发送跟踪数据,我们必须为它们提供 HTTP 端点的 URL。这意味着我们的应用程序需要包含此参数的附加配置,特别是如果我们正在运行多个 Jaeger 安装(例如,在不同的可用区或区域中)并希望将数据发送到附近的安装。相反,当使用代理时,库不需要额外的配置,因为代理总是可以通过 localhost 访问。它充当 sidecar 并将请求代理给适当的收集器。
  • 可以将代理配置为使用特定于基础架构的元数据来丰富跟踪数据,方法是向跨度添加额外的标签,例如当前区域、区域等。如果代理作为主机守护程序运行,它将被共享由运行在同一主机上的所有应用程序。如果代理作为真正的 sidecar 运行,即每个应用程序一个,它可以提供额外的功能,例如强身份验证、多租户(请参阅this blog post)、pod 名称等。 如果我们希望 Jaeger 客户端库使用在收集器中集中配置的采样策略,这只能通过使用代理上的 /sampling HTTP 端点来实现。这个端点不能直接在收集器中实现没有技术原因,它只是not done yet
  • 代理允许对收集器实施流量控制。如果我们在数据中心有数千台主机,每台都运行许多应用程序,并且每个应用程序都直接向收集器发送数据,那么每个收集器可能有太多打开的连接无法处理。代理可以通过更少的连接来负载平衡此流量。

【讨论】:

  • 感谢您对此@Yuri 的快速回复
猜你喜欢
  • 1970-01-01
  • 2014-02-27
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 2015-04-17
  • 1970-01-01
相关资源
最近更新 更多