Skip to content

Commit 317ca28

Browse files
Merge branch 'maciej-gromul-main'
2 parents d65507b + fd91a46 commit 317ca28

File tree

3 files changed

+41
-17
lines changed

3 files changed

+41
-17
lines changed

spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpanInScope.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,6 @@ class OtelSpanInScope implements Tracer.SpanInScope {
4444
}
4545

4646
private Scope storedContext(io.opentelemetry.api.trace.Span otelSpan) {
47-
if (otelSpan instanceof SpanFromSpanContext) {
48-
SpanFromSpanContext spanFromSpanContext = (SpanFromSpanContext) otelSpan;
49-
return spanFromSpanContext.otelTraceContext.context().makeCurrent();
50-
}
5147
if (this.sleuthSpan == null || this.sleuthSpan.context() == null
5248
|| this.sleuthSpan.context().context() == null) {
5349
return otelSpan.makeCurrent();

spring-cloud-sleuth-otel/src/test/java/org/springframework/cloud/sleuth/otel/bridge/BaggageTests.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
import java.util.Collections;
2020
import java.util.HashMap;
2121
import java.util.Map;
22+
import java.util.function.Function;
2223

2324
import io.opentelemetry.api.baggage.Baggage;
2425
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
2526
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
2627
import io.opentelemetry.context.propagation.ContextPropagators;
2728
import io.opentelemetry.context.propagation.TextMapPropagator;
28-
import io.opentelemetry.extension.trace.propagation.B3Propagator;
2929
import io.opentelemetry.sdk.OpenTelemetrySdk;
3030
import io.opentelemetry.sdk.trace.SdkTracerProvider;
3131
import org.junit.jupiter.api.Test;
@@ -43,28 +43,26 @@ class BaggageTests {
4343

4444
public static final String VALUE_1 = "value1";
4545

46-
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
47-
.setSampler(io.opentelemetry.sdk.trace.samplers.Sampler.alwaysOn()).build();
48-
49-
OpenTelemetrySdk openTelemetrySdk = OpenTelemetrySdk.builder().setTracerProvider(sdkTracerProvider)
50-
.setPropagators(ContextPropagators.create(B3Propagator.injectingSingleHeader())).build();
51-
52-
io.opentelemetry.api.trace.Tracer otelTracer = openTelemetrySdk.getTracer("io.micrometer.micrometer-tracing");
53-
5446
OtelCurrentTraceContext otelCurrentTraceContext = new OtelCurrentTraceContext();
5547

5648
OtelBaggageManager otelBaggageManager = new OtelBaggageManager(otelCurrentTraceContext,
57-
Collections.singletonList(KEY_1), Collections.emptyList(), event -> {
58-
});
49+
Collections.singletonList(KEY_1), Collections.emptyList(), Function.identity()::apply);
5950

6051
ContextPropagators contextPropagators = ContextPropagators.create(
6152
TextMapPropagator.composite(W3CBaggagePropagator.getInstance(), W3CTraceContextPropagator.getInstance(),
6253
new BaggageTextMapPropagator(Collections.singletonList(KEY_1), otelBaggageManager)));
6354

55+
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
56+
.setSampler(io.opentelemetry.sdk.trace.samplers.Sampler.alwaysOn()).build();
57+
58+
OpenTelemetrySdk openTelemetrySdk = OpenTelemetrySdk.builder().setTracerProvider(sdkTracerProvider)
59+
.setPropagators(contextPropagators).build();
60+
61+
io.opentelemetry.api.trace.Tracer otelTracer = openTelemetrySdk.getTracer("io.micrometer.micrometer-tracing");
62+
6463
OtelPropagator propagator = new OtelPropagator(contextPropagators, otelTracer);
6564

66-
Tracer tracer = new OtelTracer(otelTracer, event -> {
67-
}, otelBaggageManager);
65+
Tracer tracer = new OtelTracer(otelTracer, Function.identity()::apply, otelBaggageManager);
6866

6967
@Test
7068
void canSetAndGetBaggage() {

spring-cloud-sleuth-otel/src/test/java/org/springframework/cloud/sleuth/otel/bridge/OtelPropagatorTests.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.Collections;
2020
import java.util.HashMap;
2121
import java.util.Map;
22+
import java.util.function.Function;
2223

2324
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
2425
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
@@ -31,7 +32,12 @@
3132
import org.junit.jupiter.api.Test;
3233

3334
import org.springframework.cloud.sleuth.BaggageInScope;
35+
import org.springframework.cloud.sleuth.CurrentTraceContext;
3436
import org.springframework.cloud.sleuth.Span;
37+
import org.springframework.cloud.sleuth.TraceContext;
38+
import org.springframework.cloud.sleuth.Tracer;
39+
40+
import static org.assertj.core.api.Assertions.assertThat;
3541

3642
class OtelPropagatorTests {
3743

@@ -89,4 +95,28 @@ void should_propagate_context_with_baggage_only() {
8995
}
9096
}
9197

98+
@Test
99+
void should_use_created_child_context_in_scope_instead_of_parent() {
100+
OtelBaggageManager baggageManager = new OtelBaggageManager(otelCurrentTraceContext, Collections.emptyList(),
101+
Collections.emptyList(), Function.identity()::apply);
102+
OtelTracer tracer = new OtelTracer(otelTracer, Function.identity()::apply, baggageManager);
103+
104+
Map<String, String> carrier = new HashMap<>();
105+
carrier.put("traceparent", "00-3e425f2373d89640bde06e8285e7bf88-9a5fdefae3abb440-00");
106+
107+
Span extracted = otelPropagator.extract(carrier, Map::get).start();
108+
String expectedSpanId = extracted.context().spanId();
109+
110+
try (Tracer.SpanInScope ignored = tracer.withSpan(extracted)) {
111+
assertThat(tracer.currentSpan()).extracting(Span::context).returns(expectedSpanId, TraceContext::spanId)
112+
.returns("3e425f2373d89640bde06e8285e7bf88", TraceContext::traceId)
113+
.returns("9a5fdefae3abb440", TraceContext::parentId);
114+
115+
assertThat(tracer.currentTraceContext()).isNotNull().extracting(CurrentTraceContext::context).isNotNull()
116+
.returns(expectedSpanId, TraceContext::spanId)
117+
.returns("3e425f2373d89640bde06e8285e7bf88", TraceContext::traceId)
118+
.returns("9a5fdefae3abb440", TraceContext::parentId);
119+
}
120+
}
121+
92122
}

0 commit comments

Comments
 (0)