Browse Source

Merge pull request #32615 from marcingrzejszczak

* gh-32615:
  Make auto-configured Brave Tracer more compliant with OTel tracer

Closes gh-32615
pull/32633/head
Andy Wilkinson 4 years ago
parent
commit
006d2edcd5
  1. 5
      spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java
  2. 22
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java

5
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 { @@ -92,8 +92,9 @@ public class BraveAutoConfiguration {
List<TracingCustomizer> 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);
}

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

@ -16,6 +16,7 @@ @@ -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 { @@ -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 {

Loading…
Cancel
Save