我正在尝试将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>
对于我如何正确接线,你有什么建议吗?
答案 0 :(得分:0)
请使用最新快照。最新快照中的侦探在内部使用勇敢,因此集成将非常简单。