Spring Boot 2将勇敢的MySQL集成集成到Zipkin中

时间:2018-02-05 16:00:24

标签: spring-boot zipkin spring-cloud-sleuth opentracing

我正在尝试将Brave MySql Instrumentation集成到我的Spring Boot 2.x服务中,以自动让它的拦截器通过有关MySql-Queries的跨度来丰富我的跟踪。

当前的Gradle-Dependencies如下

compile 'io.zipkin.zipkin2:zipkin:2.4.5'
compile('io.zipkin.reporter2:zipkin-sender-okhttp3:2.3.1')
compile('io.zipkin.brave:brave-instrumentation-mysql:4.14.3')
compile('org.springframework.cloud:spring-cloud-starter-zipkin:2.0.0.M5')

我已经成功配置了Sleuth,将有关HTTP-Request的痕迹发送到我的Zipkin-Server,现在我想为服务的每个MySql-Query添加一些跨度。

TracingConfiguration它:

@Configuration
public class TracingConfiguration {
    /** Configuration for how to send spans to Zipkin */
    @Bean
    Sender sender() {
        return OkHttpSender.create("https://myzipkinserver.com/api/v2/spans");
    }

    /** Configuration for how to buffer spans into messages for Zipkin */
    @Bean AsyncReporter<Span> spanReporter() {
        return AsyncReporter.create(sender());
    }

    @Bean Tracing tracing(Reporter<Span> spanListener) {
      return Tracing.newBuilder()
              .spanReporter(spanReporter())
              .build();
  }
}

Query-Interceptor工作正常,但我现在的问题是跨度没有添加到现有的跟踪中,但每个都添加到新的跟踪中。

我想这是因为在配置中创建了一个新的发送者/报告者,但是我无法重用Spring Boot Autoconfiguration创建的现有发送者/报告者。 这样就不再需要冗余地定义Zipkin-Url(因为它已经在我的application.yml中为Zipkin定义了)。

我已经尝试将Zipkin-Reporter自动装配到我的Bean,但我得到的只是SpanReporter - 但是Brave-Tracer-Builder需要Reporter<Span>

对于我如何正确接线,你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

请使用最新快照。最新快照中的侦探在内部使用勇敢,因此集成将非常简单。