Spring Boot 2 集成 Brave MySQL-集成到 Zipkin
Spring Boot 2 integrate Brave MySQL-Integration into Zipkin
我正在尝试将 Brave MySql Instrumentation 集成到我的 Spring Boot 2.x 服务中,以自动让其拦截器使用有关 MySql-Queries 的跨度丰富我的跟踪.
当前Gradle-依赖如下
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 请求的跟踪发送到我的 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();
}
}
查询拦截器工作正常,但我现在的问题是跨度没有添加到现有跟踪中,而是每个都添加到新跟踪中。
我猜是因为在配置中创建了一个新的 sender/reporter,但我无法重用由 Spring 引导自动配置创建的现有配置。 此外,这将消除冗余定义 Zipkin-Url 的必要性(因为它已经在我的 application.yml 中为 Zipkin 定义)。
我已经尝试将 Zipkin-Reporter 自动装配到我的 Bean,但我得到的只是一个 SpanReporter
- 但 Brave-Tracer-Builder 需要一个 Reporter<Span>
你对我如何正确连接有什么建议吗?
请使用最新的快照。最新快照中的 Sleuth 内部使用了 brave,因此集成将非常简单。