Skip to content

Commit 006d2ed

Browse files
committed
Merge pull request #32615 from marcingrzejszczak
* gh-32615: Make auto-configured Brave Tracer more compliant with OTel tracer Closes gh-32615
2 parents da7128c + dfd148f commit 006d2ed

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,9 @@ public Tracing braveTracing(Environment environment, List<SpanHandler> spanHandl
9292
List<TracingCustomizer> tracingCustomizers, CurrentTraceContext currentTraceContext,
9393
Factory propagationFactory, Sampler sampler) {
9494
String applicationName = environment.getProperty("spring.application.name", DEFAULT_APPLICATION_NAME);
95-
Builder builder = Tracing.newBuilder().currentTraceContext(currentTraceContext)
96-
.propagationFactory(propagationFactory).sampler(sampler).localServiceName(applicationName);
95+
Builder builder = Tracing.newBuilder().currentTraceContext(currentTraceContext).traceId128Bit(true)
96+
.supportsJoin(false).propagationFactory(propagationFactory).sampler(sampler)
97+
.localServiceName(applicationName);
9798
for (SpanHandler spanHandler : spanHandlers) {
9899
builder.addSpanHandler(spanHandler);
99100
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java

+22
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.boot.actuate.autoconfigure.tracing;
1818

19+
import brave.Span;
1920
import brave.Tracer;
2021
import brave.Tracing;
2122
import brave.baggage.BaggagePropagation;
@@ -211,6 +212,27 @@ void shouldSupplyMdcCorrelationScopeDecoratorIfBaggageCorrelationDisabled() {
211212
.run((context) -> assertThat(context).hasBean("mdcCorrelationScopeDecoratorBuilder"));
212213
}
213214

215+
@Test
216+
void shouldHave128BitTraceId() {
217+
this.contextRunner.run((context) -> {
218+
Tracing tracing = context.getBean(Tracing.class);
219+
Span span = tracing.tracer().nextSpan();
220+
assertThat(span.context().traceIdString()).hasSize(32);
221+
});
222+
}
223+
224+
@Test
225+
void shouldNotSupportJoinedSpans() {
226+
this.contextRunner.run((context) -> {
227+
Tracing tracing = context.getBean(Tracing.class);
228+
Span parentSpan = tracing.tracer().nextSpan();
229+
Span childSpan = tracing.tracer().joinSpan(parentSpan.context());
230+
assertThat(parentSpan.context().traceIdString()).isEqualTo(childSpan.context().traceIdString());
231+
assertThat(parentSpan.context().spanIdString()).isEqualTo(childSpan.context().parentIdString());
232+
assertThat(parentSpan.context().spanIdString()).isNotEqualTo(childSpan.context().spanIdString());
233+
});
234+
}
235+
214236
@Configuration(proxyBeanMethods = false)
215237
private static class CustomConfiguration {
216238

0 commit comments

Comments
 (0)