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