From d7eccee650eb94b8708c058f3dc5a77d390a2b28 Mon Sep 17 00:00:00 2001 From: Tim Ysewyn Date: Tue, 15 Jan 2019 17:29:55 +0100 Subject: [PATCH] Moved `ReporterMetrics sleuthReporterMetrics()` to `TraceAutoConfiguration` so other implementations can use the same default --- .../sleuth/autoconfig/TraceAutoConfiguration.java | 8 ++++++++ .../sleuth/zipkin2/ZipkinAutoConfiguration.java | 9 ++------- .../sleuth/zipkin2/ZipkinAutoConfigurationTests.java | 12 +++++++----- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java index 837e45cce..e4e3ae385 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java @@ -31,7 +31,9 @@ import brave.propagation.Propagation; import brave.propagation.ThreadLocalCurrentTraceContext; import brave.sampler.Sampler; import zipkin2.Span; +import zipkin2.reporter.InMemoryReporterMetrics; import zipkin2.reporter.Reporter; +import zipkin2.reporter.ReporterMetrics; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -171,6 +173,12 @@ public class TraceAutoConfiguration { return ThreadLocalCurrentTraceContext.newBuilder(); } + @Bean + @ConditionalOnMissingBean + ReporterMetrics sleuthReporterMetrics() { + return new InMemoryReporterMetrics(); + } + @Bean @ConditionalOnMissingBean Reporter noOpSpanReporter() { diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java index 553c1bab6..a586d4d6b 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java @@ -64,7 +64,8 @@ import org.springframework.web.client.RestTemplate; */ @Configuration @EnableConfigurationProperties(ZipkinProperties.class) -@ConditionalOnProperty(value = "spring.zipkin.enabled", matchIfMissing = true) +@ConditionalOnProperty(value = { "spring.sleuth.enabled", + "spring.zipkin.enabled" }, matchIfMissing = true) @AutoConfigureBefore(TraceAutoConfiguration.class) @AutoConfigureAfter(name = "org.springframework.cloud.autoconfigure.RefreshAutoConfiguration") @Import({ ZipkinSenderConfigurationImportSelector.class, SamplerAutoConfiguration.class }) @@ -112,12 +113,6 @@ public class ZipkinAutoConfiguration { return new DefaultZipkinRestTemplateCustomizer(zipkinProperties); } - @Bean - @ConditionalOnMissingBean - ReporterMetrics sleuthReporterMetrics() { - return new InMemoryReporterMetrics(); - } - @Configuration @ConditionalOnMissingBean(EndpointLocator.class) @ConditionalOnProperty(value = "spring.zipkin.locator.discovery.enabled", havingValue = "false", matchIfMissing = true) diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java index 73e3c52d7..0f6cc8809 100644 --- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java +++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java @@ -125,7 +125,8 @@ public class ZipkinAutoConfigurationTests { this.context = new AnnotationConfigApplicationContext(); environment().setProperty("spring.zipkin.rabbitmq.queue", "zipkin2"); this.context.register(PropertyPlaceholderAutoConfiguration.class, - RabbitAutoConfiguration.class, ZipkinAutoConfiguration.class); + RabbitAutoConfiguration.class, ZipkinAutoConfiguration.class, + TraceAutoConfiguration.class); this.context.refresh(); then(this.context.getBean(Sender.class)).isInstanceOf(RabbitMQSender.class); @@ -139,7 +140,8 @@ public class ZipkinAutoConfigurationTests { environment().setProperty("spring.zipkin.kafka.topic", "zipkin2"); environment().setProperty("spring.zipkin.sender.type", "kafka"); this.context.register(PropertyPlaceholderAutoConfiguration.class, - KafkaAutoConfiguration.class, ZipkinAutoConfiguration.class); + KafkaAutoConfiguration.class, ZipkinAutoConfiguration.class, + TraceAutoConfiguration.class); this.context.refresh(); then(this.context.getBean(Sender.class)).isInstanceOf(KafkaSender.class); @@ -153,7 +155,7 @@ public class ZipkinAutoConfigurationTests { environment().setProperty("spring.zipkin.sender.type", "web"); this.context.register(PropertyPlaceholderAutoConfiguration.class, RabbitAutoConfiguration.class, KafkaAutoConfiguration.class, - ZipkinAutoConfiguration.class); + ZipkinAutoConfiguration.class, TraceAutoConfiguration.class); this.context.refresh(); then(this.context.getBean(Sender.class).getClass().getName()) @@ -168,7 +170,7 @@ public class ZipkinAutoConfigurationTests { environment().setProperty("spring.zipkin.sender.type", "WEB"); this.context.register(PropertyPlaceholderAutoConfiguration.class, RabbitAutoConfiguration.class, KafkaAutoConfiguration.class, - ZipkinAutoConfiguration.class); + ZipkinAutoConfiguration.class, TraceAutoConfiguration.class); this.context.refresh(); then(this.context.getBean(Sender.class).getClass().getName()) @@ -182,7 +184,7 @@ public class ZipkinAutoConfigurationTests { this.context = new AnnotationConfigApplicationContext(); this.context.register(PropertyPlaceholderAutoConfiguration.class, RabbitAutoConfiguration.class, KafkaAutoConfiguration.class, - ZipkinAutoConfiguration.class); + ZipkinAutoConfiguration.class, TraceAutoConfiguration.class); this.context.refresh(); then(this.context.getBean(Sender.class)).isInstanceOf(RabbitMQSender.class);