- 在Jaeger部署中,单个代理与单个收集器是否可能共存
- 这是否可取
- 是否可以完全跳过代理并通过HTTP将跨度直接提交给收集器?(文档中提到了这一点,但没有详细说明如何实现。(这一点的可扩展性如何
可以绕过代理,直接将度量发送到收集器。
只需在应用程序运行环境中定义变量JAEGER_ENDPOINT。
这种行为有记录,但在Jager git回购中被掩盖了:
https://github.com/jaegertracing/jaeger-client-java/blob/master/jaeger-core/README.md
- 是的,这是可能的。您可以像部署任何典型服务一样部署这些服务
- 这取决于具体情况。通常情况下,最好将度量/日志提取到它们自己的实例中,因为性能要求可能与您的应用程序不同
- 如果将检测配置为直接与收集器通信,则可以实现这一点。收集器可以通过端口14268上的HTTP接收跨度(https://www.jaegertracing.io/docs/1.6/deployment)
可扩展性取决于采样频率和体积。该代理支持自适应采样,这是从收集器到插入指令的应用程序的反馈循环。
您可以在仪器中预先静态地定义它,但会丢失自适应功能。
在Jaeger部署中,单个代理与单个收集器是否可能共存?
这是可能的,这就是"一体式"图像的工作原理。
这是否可取?
取决于您的体系结构。如果你不希望你的Jaeger基础设施增长,从维护的角度来看,使用一体式更容易。如果你需要你的Jaeger基础设施高度可用,那么你可能想把你的代理放在离你的仪器应用程序更近的地方,而不是放在离收集器更近的位置,并分别扩展收集器。
关于Jaeger Agent的更多信息,请参阅以下博客文章:
在裸机上运行Jaeger AgentJaeger Agent 的部署策略
是否可以完全跳过代理并通过HTTP直接向收集器提交跨度?
对于某些客户端(Java、NodeJS和C#(,是的。查找JAEGER_ENDPOINT
选项。