Skip to content

Commit f8d88bb

Browse files
Fixes lack of load balanced URL extraction for Zipkin and Reactor
fixes gh-2339
1 parent c5b82d4 commit f8d88bb

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/zipkin2/ZipkinHttpSenderConfiguration.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.cloud.sleuth.autoconfig.zipkin2;
1818

19+
import java.net.URI;
20+
1921
import zipkin2.reporter.Sender;
2022

2123
import org.springframework.beans.factory.annotation.Autowired;
@@ -82,9 +84,11 @@ ZipkinUrlExtractor defaultZipkinUrlExtractor(final ZipkinLoadBalancer zipkinLoad
8284
static class ZipkinReactiveConfiguration {
8385

8486
@Bean(ZipkinAutoConfiguration.SENDER_BEAN_NAME)
85-
Sender webClientSender(ZipkinProperties zipkin, ZipkinWebClientBuilderProvider zipkinWebClientBuilderProvider) {
87+
Sender webClientSender(ZipkinProperties zipkin, ZipkinWebClientBuilderProvider zipkinWebClientBuilderProvider,
88+
ZipkinUrlExtractor zipkinUrlExtractor) {
8689
WebClient.Builder webClientBuilder = zipkinWebClientBuilderProvider.zipkinWebClientBuilder();
87-
return new WebClientSender(webClientBuilder.build(), zipkin.getBaseUrl(), zipkin.getApiPath(),
90+
URI uri = zipkinUrlExtractor.zipkinUrl(zipkin);
91+
return new WebClientSender(webClientBuilder.build(), uri.toString(), zipkin.getApiPath(),
8892
zipkin.getEncoder(), zipkin.getCheckTimeout());
8993
}
9094

@@ -94,6 +98,11 @@ ZipkinWebClientBuilderProvider defaultZipkinWebClientProvider() {
9498
return WebClient::builder;
9599
}
96100

101+
@Bean
102+
ZipkinUrlExtractor defaultZipkinUrlExtractor(final ZipkinLoadBalancer zipkinLoadBalancer) {
103+
return new CachingZipkinUrlExtractor(zipkinLoadBalancer);
104+
}
105+
97106
}
98107

99108
@Configuration(proxyBeanMethods = false)

spring-cloud-sleuth-autoconfigure/src/test/java/org/springframework/cloud/sleuth/autoconfig/zipkin2/ZipkinHttpSenderConfigurationReactiveTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void should_work_when_using_web_client_without_the_web_environment() {
4949
springApplication.setWebApplicationType(WebApplicationType.REACTIVE);
5050

5151
try (ConfigurableApplicationContext context = springApplication.run("--spring.sleuth.noop.enabled=true",
52-
"--server.port=0")) {
52+
"--server.port=0", "--spring.zipkin.base-url=http://cloudUrl")) {
5353
then(context.getBean(Sender.class)).isInstanceOf(WebClientSender.class);
5454
}
5555
}

0 commit comments

Comments
 (0)