云原生应用的分布式追踪

问题描述 投票:0回答:3

我正在使用 Spring Boot 来构建微服务,并使用 Kubernetes 来实现微服务模式。在这方面,我正在寻找 Spring cloud sleuth 的替代者。我必须使用哪些选项来替换 Sleuth 以进行分布式跟踪。这里的想法是将时间戳、跟踪和跨度作为 sidecar 容器注入到 Spring Boot 应用程序之外。

spring-boot kubernetes microservices
3个回答
2
投票

呼应之前建议 Jaeger 的答案。您还应该查看 OpenTelemetry Java 工具。 OpenTemeletry 中的 Java 工具也支持云侦探 API。自动检测将在应用程序代码之外工作,但它仍然需要在 JVM 内部运行。如果不检测代码,就无法进行分布式跟踪,因此 sidecar 无法生成跨度数据。


1
投票

你探索过 Jaeger 了吗?

https://landscape.cncf.io/card-mode?category=tracing&grouping=category 有一个不错的列表,您可能想从这里开始。

在我看来,对跟踪的决定取决于您是否需要将其作为 sidecar(类似 Jaeger)或在应用程序中(类似 Sleuth)。我更喜欢 sidecar,因为跟踪作为横切关注点执行,而不依赖于语言或框架。如果需要的话,也许可以将其与 Open Telemetry 这样的库一起使用来引入自定义跨度。 Sleuth 的另一个问题是它与 B3 标头的紧密耦合(当然可以通过编码我们自己的传播类来覆盖 - 但我真的想这样做吗?),而在我们的组织中,我们使用完全不同的标头 - 覆盖此默认值是不可配置的在《侦探》中!


0
投票

知识Trace原理及java实现,也许对你有帮助

https://www.devean.cn/en/blog/2024/distributed-tracing/

© www.soinside.com 2019 - 2024. All rights reserved.