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 861719e27..c766f0ade 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 @@ -30,6 +30,7 @@ import brave.propagation.ExtraFieldPropagation; import brave.propagation.Propagation; import brave.propagation.ThreadLocalCurrentTraceContext; import brave.sampler.Sampler; +import org.springframework.util.StringUtils; import zipkin2.Span; import zipkin2.reporter.Reporter; @@ -62,6 +63,11 @@ public class TraceAutoConfiguration { */ public static final String TRACER_BEAN_NAME = "tracer"; + /** + * Default value used for service name if none provided. + */ + public static final String DEFAULT_SERVICE_NAME = "default"; + @Autowired(required = false) List spanAdjusters = new ArrayList<>(); @@ -83,7 +89,8 @@ public class TraceAutoConfiguration { Reporter reporter, Sampler sampler, ErrorParser errorParser, SleuthProperties sleuthProperties) { Tracing.Builder builder = Tracing.newBuilder().sampler(sampler) - .errorParser(errorParser).localServiceName(serviceName) + .errorParser(errorParser) + .localServiceName(StringUtils.isEmpty(serviceName) ? DEFAULT_SERVICE_NAME : serviceName) .propagationFactory(factory).currentTraceContext(currentTraceContext) .spanReporter(adjustedReporter(reporter)) .traceId128Bit(sleuthProperties.isTraceId128()) diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java index 1ebaf221a..0413a7a44 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java @@ -34,6 +34,15 @@ public class TraceAutoConfigurationPropagationCustomizationTests { }); } + @Test + public void defaultValueUsedWhenApplicationNameNotSet() { + this.contextRunner.withPropertyValues("spring.application.name=") + .run((context) -> { + BDDAssertions.then(context.getBean(Propagation.Factory.class)) + .isEqualTo(B3Propagation.FACTORY); + }); + } + @Test public void allowsCustomizationOfBuilder() { this.contextRunner.withPropertyValues("spring.sleuth.baggage-keys=my-baggage")