diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java index 670f7caf876..2e22a7507b4 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java @@ -92,8 +92,9 @@ public class BraveAutoConfiguration { List tracingCustomizers, CurrentTraceContext currentTraceContext, Factory propagationFactory, Sampler sampler) { String applicationName = environment.getProperty("spring.application.name", DEFAULT_APPLICATION_NAME); - Builder builder = Tracing.newBuilder().currentTraceContext(currentTraceContext) - .propagationFactory(propagationFactory).sampler(sampler).localServiceName(applicationName); + Builder builder = Tracing.newBuilder().currentTraceContext(currentTraceContext).traceId128Bit(true) + .supportsJoin(false).propagationFactory(propagationFactory).sampler(sampler) + .localServiceName(applicationName); for (SpanHandler spanHandler : spanHandlers) { builder.addSpanHandler(spanHandler); } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java index 1bac894b1b5..e629e46c8b3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java @@ -16,6 +16,7 @@ package org.springframework.boot.actuate.autoconfigure.tracing; +import brave.Span; import brave.Tracer; import brave.Tracing; import brave.baggage.BaggagePropagation; @@ -211,6 +212,27 @@ class BraveAutoConfigurationTests { .run((context) -> assertThat(context).hasBean("mdcCorrelationScopeDecoratorBuilder")); } + @Test + void shouldHave128BitTraceId() { + this.contextRunner.run((context) -> { + Tracing tracing = context.getBean(Tracing.class); + Span span = tracing.tracer().nextSpan(); + assertThat(span.context().traceIdString()).hasSize(32); + }); + } + + @Test + void shouldNotSupportJoinedSpans() { + this.contextRunner.run((context) -> { + Tracing tracing = context.getBean(Tracing.class); + Span parentSpan = tracing.tracer().nextSpan(); + Span childSpan = tracing.tracer().joinSpan(parentSpan.context()); + assertThat(parentSpan.context().traceIdString()).isEqualTo(childSpan.context().traceIdString()); + assertThat(parentSpan.context().spanIdString()).isEqualTo(childSpan.context().parentIdString()); + assertThat(parentSpan.context().spanIdString()).isNotEqualTo(childSpan.context().spanIdString()); + }); + } + @Configuration(proxyBeanMethods = false) private static class CustomConfiguration {