Jaeger与一个远程代理

时间:2018-12-06 15:47:50

标签: jaeger

  • 在Jaeger部署中,可以将与单个收集器并置在一起的单个代理程序吗?
  • 这是明智的吗?
  • 是否可以完全跳过代理并通过HTTP直接将范围提交给收集器? (在文档中对此进行了提及,但没有详细说明如何实现。)这将具有多大的可扩展性?

3 个答案:

答案 0 :(得分:1)

可以一起绕过代理,然后将指标直接发送到收集器。

只需在应用运行环境中定义变量JAEGER_ENDPOINT。

这种行为已被记录下来,但被隐藏在Jager git repo中:

https://github.com/jaegertracing/jaeger-client-java/blob/master/jaeger-core/README.md

答案 1 :(得分:0)

  • 是的,有可能。您可以像部署任何典型服务一样部署它们。
  • 这取决于情况。通常,最好将指标/日志提取到自己的实例中,因为性能要求可能与您的应用程序不同。
  • 如果将仪器配置为直接与收集器通信,则可以实现此目的。收集器可以通过HTTP在端口14268(https://www.jaegertracing.io/docs/1.6/deployment)上接收跨度。

可扩展性取决于采样频率和体积。该代理支持自适应采样,这是从收集器到您检测的应用的反馈回路。

您可以在仪器中预先静态定义此参数,但是会丢失自适应功能。

答案 2 :(得分:0)

  

在Jaeger部署中,可以将与单个收集器并置在一起的单个代理程序吗?

这是有可能的,这就是"all-in-one"图片的工作方式。

  

这是明智的吗?

取决于您的体系结构。如果您不希望Jaeger基础设施发展壮大,那么从维护角度来看,使用多合一会更容易。如果您需要Jaeger基础设施高度可用,那么您可能希望将代理程序放置在比您收集的应用程序更近的位置,而不是在收集器附近,并分别缩放收集器。

在以下博客文章中讨论了有关Jaeger Agent的更多信息:

Running Jaeger Agent on bare metal Deployment strategies for the Jaeger Agent

  

是否可以完全跳过代理并通过HTTP直接将范围提交给收集器?

对于某些客户端(Java,NodeJS和C#),可以。寻找JAEGER_ENDPOINT option