spring-webflux - 如何在 Spring WebFlux 中使用 Jaeger?

标签 spring-webflux istio opentracing jaeger

我们正在尝试对 Webflux 使用react。我们将 Jaegar 与 Istio 用于检测目的。

Jaegar 非常了解 Spring MVC 端点,但似乎对 WebFlux 根本不起作用。

我正在寻找使我的 webflux 端点出现在 Jaeger 中的建议。

提前致谢。

最佳答案

为了使用 Jaegar 前进的最佳方式是不要使用 JAEGAR CLIENT!

Jaegar 有能力收集 Zipkin 跨度:

https://www.jaegertracing.io/docs/1.8/getting-started/#migrating-from-zipkin

您应该利用这一点并使用以下 Sleuth+Zipkin 依赖项,并在您的 Spring Boot 应用程序中排除 Jaegar 代理 jar。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>

以上将发送 Zipkin spans 到 http://localhost:9411默认情况下。您可以通过覆盖 zipkin 基本 URL 在 Spring Boot 应用程序中覆盖它以轻松指向您的 Jaegar 服务器。

spring.zipkin.base-url=http://your-jaegar-server:9411



Sleuth 将完成所有繁重的工作,默认日志记录将记录 span 和 traceIds。

在 log4j2.xml 文件中,您只需要提及

[%X]



您可以在此处找到示例代码:

https://github.com/anoophp777/spring-webflux-jaegar-log4j2

关于spring-webflux - 如何在 Spring WebFlux 中使用 Jaeger?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53322900/

相关文章:

spring-boot - Spring WebFlux WebClient 挂起并且 Mono.timeout 没有捕捉到它

zos - 如何在我们的 z/OS Connect 服务器上启用分布式跟踪(基于 WebSphere liberty Profile 和 open-liberty)?

Python:获取 urllib3 请求 header

unit-testing - Mono.doOnError() react 器 block 单元测试

maven-3 - Spring Webflux 中的日志记录是非阻塞操作吗?

使用 Istio grpc-web 代理的 CORS 预检上的 golang gRPC 503

Kubernetes 与 Istio : Authenticate with External Oauth Service

c# - 通过 MassTransit 发布者/消费者传播 W3C 跟踪上下文

java - 如何使用 spring flux 和 spring flux web 客户端组织线程池?

kubernetes - 当下游服务抛出 5xx(500、502、503、504)错误时,Istio 断路器不会在连续错误上打开电路