3

我想在日志中注入 x-b3-traceid 和 x-b3-spanid,其模式如图所示-

property name="PATTERN" value="%h %l %u [%date{dd/MMM/yyyy:HH:mm:ss.SSS}] "%r" %s %b "%i{Referer}" "%i{User-Agent}" [trace=%responseHeader{X-B3-TraceId},span=%i{X-B3-SpanId}] %D"

对于 zipkins,有可用的库,例如

勇敢的上下文-log4j2 - ( https://github.com/openzipkin/brave/tree/master/context/log4j2 )

春云侦探。(https://cloud.spring.io/spring-cloud-sleuth/)如何在使用 jaeger 时添加它?

4

1 回答 1

2

继续使用 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]

我将把这种方法的一个工作示例上传到我的 GitHub 并分享链接。

编辑1:

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

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

于 2018-11-16T16:11:14.063 回答