From 79e0bf1d3690dbc6628a2fc2413d5b29e678dfb2 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 30 Nov 2020 15:34:53 +0100 Subject: [PATCH] Bumped OTel to 0.11.0; fixes gh-1787 --- pom.xml | 4 +-- .../cloud/sleuth/BaggageInScope.java | 6 ++++ spring-cloud-sleuth-autoconfigure/pom.xml | 11 ------- .../otel/OtelAutoConfiguration.java | 17 ++++++++-- .../otel/OtelBridgeConfiguation.java | 13 -------- .../otel/OtelPropagationConfiguration.java | 29 ++++++++++++++--- .../sleuth/autoconfig/NoOpBaggageInScope.java | 5 +++ .../brave/bridge/BraveBaggageInScope.java | 5 +++ spring-cloud-sleuth-dependencies/pom.xml | 2 +- spring-cloud-sleuth-otel/pom.xml | 11 ------- .../otel/bridge/OtelBaggageInScope.java | 10 ++++++ .../otel/bridge/OtelBaggageManager.java | 3 +- .../sleuth/otel/bridge/OtelOpenTelemetry.java | 8 ++--- .../cloud/sleuth/otel/bridge/OtelSpan.java | 32 ++++++++++++++++--- .../sleuth/otel/bridge/OtelSpanBuilder.java | 6 ++-- .../propagation/BaggageTextMapPropagator.java | 3 +- .../web/baggage/Service1Controller.java | 2 +- 17 files changed, 108 insertions(+), 59 deletions(-) diff --git a/pom.xml b/pom.xml index 71e2b3432..f91aa1397 100644 --- a/pom.xml +++ b/pom.xml @@ -73,9 +73,9 @@ 3.0.0-SNAPSHOT 5.13.2 0.32.0 - 0.10.0 + 0.11.0 - 0.10.1 + 0.11.0 2.3.4.RELEASE false 4.9.0 diff --git a/spring-cloud-sleuth-api/src/main/java/org/springframework/cloud/sleuth/BaggageInScope.java b/spring-cloud-sleuth-api/src/main/java/org/springframework/cloud/sleuth/BaggageInScope.java index 4b806a9f4..268aaff40 100644 --- a/spring-cloud-sleuth-api/src/main/java/org/springframework/cloud/sleuth/BaggageInScope.java +++ b/spring-cloud-sleuth-api/src/main/java/org/springframework/cloud/sleuth/BaggageInScope.java @@ -68,6 +68,12 @@ public interface BaggageInScope extends Closeable { */ BaggageInScope set(TraceContext traceContext, String value); + /** + * Sets the current baggage in scope. + * @return this in scope + */ + BaggageInScope makeCurrent(); + @Override void close(); diff --git a/spring-cloud-sleuth-autoconfigure/pom.xml b/spring-cloud-sleuth-autoconfigure/pom.xml index 52876f5ff..870c25766 100644 --- a/spring-cloud-sleuth-autoconfigure/pom.xml +++ b/spring-cloud-sleuth-autoconfigure/pom.xml @@ -351,17 +351,6 @@ - - io.opentelemetry - opentelemetry-extension-auto-annotations - true - - - io.opentelemetry - * - - - io.opentelemetry opentelemetry-exporter-logging diff --git a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelAutoConfiguration.java b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelAutoConfiguration.java index 7bfff1364..89337e981 100644 --- a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelAutoConfiguration.java +++ b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelAutoConfiguration.java @@ -22,10 +22,9 @@ import java.util.stream.Collectors; import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.metrics.spi.MeterProviderFactory; import io.opentelemetry.api.trace.Tracer; import io.opentelemetry.api.trace.TracerProvider; -import io.opentelemetry.api.trace.spi.TracerProviderFactory; +import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.sdk.trace.SpanProcessor; import io.opentelemetry.sdk.trace.TracerSdkProvider; import io.opentelemetry.sdk.trace.config.TraceConfig; @@ -33,6 +32,8 @@ import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; import io.opentelemetry.sdk.trace.export.SpanExporter; import io.opentelemetry.sdk.trace.samplers.Sampler; import io.opentelemetry.sdk.trace.spi.TracerProviderFactorySdk; +import io.opentelemetry.spi.metrics.MeterProviderFactory; +import io.opentelemetry.spi.trace.TracerProviderFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -44,6 +45,7 @@ import org.springframework.cloud.sleuth.autoconfig.SleuthBaggageProperties; import org.springframework.cloud.sleuth.autoconfig.SleuthSpanFilterProperties; import org.springframework.cloud.sleuth.autoconfig.SleuthTracerProperties; import org.springframework.cloud.sleuth.autoconfig.TraceConfiguration; +import org.springframework.cloud.sleuth.otel.bridge.OtelOpenTelemetry; import org.springframework.cloud.sleuth.otel.bridge.SpanExporterCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -67,6 +69,17 @@ import org.springframework.context.annotation.Import; SleuthAnnotationConfiguration.class }) public class OtelAutoConfiguration { + @Bean + @ConditionalOnMissingBean + OpenTelemetry otel(TracerProviderFactory tracerProviderFactory, MeterProviderFactory meterProviderFactory, + TracerProvider tracerProvider, MeterProvider meterProvider, ContextPropagators contextPropagators) { + OtelOpenTelemetry otelOpenTelemetry = new OtelOpenTelemetry(tracerProviderFactory, meterProviderFactory, + tracerProvider, meterProvider, contextPropagators); + OpenTelemetry.set(otelOpenTelemetry); + OpenTelemetry.setGlobalPropagators(contextPropagators); + return otelOpenTelemetry; + } + @Bean @ConditionalOnMissingBean TracerProviderFactory otelTracerProviderFactory() { diff --git a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelBridgeConfiguation.java b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelBridgeConfiguation.java index b02f72e0b..1b67b902c 100644 --- a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelBridgeConfiguation.java +++ b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelBridgeConfiguation.java @@ -19,10 +19,6 @@ package org.springframework.cloud.sleuth.autoconfig.otel; import java.util.regex.Pattern; import io.opentelemetry.api.OpenTelemetry; -import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.metrics.spi.MeterProviderFactory; -import io.opentelemetry.api.trace.TracerProvider; -import io.opentelemetry.api.trace.spi.TracerProviderFactory; import io.opentelemetry.context.propagation.ContextPropagators; import org.springframework.beans.factory.ObjectProvider; @@ -51,7 +47,6 @@ import org.springframework.cloud.sleuth.otel.bridge.OtelBaggageManager; import org.springframework.cloud.sleuth.otel.bridge.OtelCurrentTraceContext; import org.springframework.cloud.sleuth.otel.bridge.OtelHttpClientHandler; import org.springframework.cloud.sleuth.otel.bridge.OtelHttpServerHandler; -import org.springframework.cloud.sleuth.otel.bridge.OtelOpenTelemetry; import org.springframework.cloud.sleuth.otel.bridge.OtelPropagator; import org.springframework.cloud.sleuth.otel.bridge.OtelSpanCustomizer; import org.springframework.cloud.sleuth.otel.bridge.OtelTracer; @@ -76,14 +71,6 @@ import org.springframework.lang.Nullable; @Import({ OtelLogConfiguration.class, OtelExporterConfiguration.class }) class OtelBridgeConfiguation { - @Bean - @ConditionalOnMissingBean - OpenTelemetry otel(TracerProviderFactory tracerProviderFactory, MeterProviderFactory meterProviderFactory, - TracerProvider tracerProvider, MeterProvider meterProvider, ContextPropagators contextPropagators) { - return new OtelOpenTelemetry(tracerProviderFactory, meterProviderFactory, tracerProvider, meterProvider, - contextPropagators); - } - @Bean Tracer otelTracerBridge(io.opentelemetry.api.trace.Tracer tracer, ApplicationEventPublisher publisher, CurrentTraceContext currentTraceContext, SleuthBaggageProperties sleuthBaggageProperties) { diff --git a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelPropagationConfiguration.java b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelPropagationConfiguration.java index 40044d3fa..70b5feb96 100644 --- a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelPropagationConfiguration.java +++ b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelPropagationConfiguration.java @@ -17,9 +17,12 @@ package org.springframework.cloud.sleuth.autoconfig.otel; import java.util.ArrayList; +import java.util.Collections; import java.util.List; -import io.opentelemetry.api.OpenTelemetry; +import javax.annotation.Nullable; + +import io.opentelemetry.context.Context; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.context.propagation.DefaultContextPropagators; import io.opentelemetry.context.propagation.TextMapPropagator; @@ -58,12 +61,30 @@ class OtelPropagationConfiguration { ContextPropagators otelContextPropagators(ObjectProvider> propagators) { List mapPropagators = propagators.getIfAvailable(ArrayList::new); if (mapPropagators.isEmpty()) { - return OpenTelemetry.getGlobalPropagators(); + return noOpContextPropagator(); } DefaultContextPropagators.Builder builder = DefaultContextPropagators.builder(); mapPropagators.forEach(builder::addTextMapPropagator); - OpenTelemetry.setGlobalPropagators(builder.build()); - return OpenTelemetry.getGlobalPropagators(); + return builder.build(); + } + + private ContextPropagators noOpContextPropagator() { + return () -> new TextMapPropagator() { + @Override + public List fields() { + return Collections.emptyList(); + } + + @Override + public void inject(Context context, @Nullable C carrier, Setter setter) { + + } + + @Override + public Context extract(Context context, @Nullable C carrier, Getter getter) { + return context; + } + }; } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-sleuth-autoconfigure/src/test/java/org/springframework/cloud/sleuth/autoconfig/NoOpBaggageInScope.java b/spring-cloud-sleuth-autoconfigure/src/test/java/org/springframework/cloud/sleuth/autoconfig/NoOpBaggageInScope.java index bf2c48e53..858ab72e3 100644 --- a/spring-cloud-sleuth-autoconfigure/src/test/java/org/springframework/cloud/sleuth/autoconfig/NoOpBaggageInScope.java +++ b/spring-cloud-sleuth-autoconfigure/src/test/java/org/springframework/cloud/sleuth/autoconfig/NoOpBaggageInScope.java @@ -52,6 +52,11 @@ class NoOpBaggageInScope implements BaggageInScope { return this; } + @Override + public BaggageInScope makeCurrent() { + return this; + } + @Override public void close() { diff --git a/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/bridge/BraveBaggageInScope.java b/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/bridge/BraveBaggageInScope.java index 366cc6fc5..cd49c33a5 100644 --- a/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/bridge/BraveBaggageInScope.java +++ b/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/bridge/BraveBaggageInScope.java @@ -66,6 +66,11 @@ class BraveBaggageInScope implements BaggageInScope { return this; } + @Override + public BaggageInScope makeCurrent() { + return this; + } + @Override public void close() { diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml index a2b94bab6..fb7325a7e 100644 --- a/spring-cloud-sleuth-dependencies/pom.xml +++ b/spring-cloud-sleuth-dependencies/pom.xml @@ -34,7 +34,7 @@ 5.13.2 0.37.4 4.2.2 - 0.10.0 + 0.11.0 diff --git a/spring-cloud-sleuth-otel/pom.xml b/spring-cloud-sleuth-otel/pom.xml index 2d26d9724..01d8a26fd 100644 --- a/spring-cloud-sleuth-otel/pom.xml +++ b/spring-cloud-sleuth-otel/pom.xml @@ -88,17 +88,6 @@ - - io.opentelemetry - opentelemetry-extension-auto-annotations - true - - - io.opentelemetry - * - - - io.opentelemetry opentelemetry-exporter-logging diff --git a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelBaggageInScope.java b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelBaggageInScope.java index 41b665051..4e980274b 100644 --- a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelBaggageInScope.java +++ b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelBaggageInScope.java @@ -119,6 +119,16 @@ class OtelBaggageInScope implements BaggageInScope { return doSet(traceContext, value); } + @Override + public BaggageInScope makeCurrent() { + close(); + Entry entry = entry(); + Scope scope = Baggage.builder().put(entry.getKey(), entry.getValue(), entry.getEntryMetadata()).build() + .makeCurrent(); + this.scope.set(scope); + return this; + } + @Override public void close() { Scope scope = this.scope.get(); diff --git a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelBaggageManager.java b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelBaggageManager.java index 9bedfa046..913b4869f 100644 --- a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelBaggageManager.java +++ b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelBaggageManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Objects; import io.opentelemetry.api.baggage.Baggage; +import io.opentelemetry.api.baggage.BaggageBuilder; import io.opentelemetry.api.baggage.BaggageConsumer; import io.opentelemetry.api.baggage.EntryMetadata; import io.opentelemetry.context.Context; @@ -205,7 +206,7 @@ class CompositeBaggage implements io.opentelemetry.api.baggage.Baggage { } @Override - public Builder toBuilder() { + public BaggageBuilder toBuilder() { return Baggage.builder(); } diff --git a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelOpenTelemetry.java b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelOpenTelemetry.java index 7dec15954..fdbf48ca9 100644 --- a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelOpenTelemetry.java +++ b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelOpenTelemetry.java @@ -20,10 +20,10 @@ import java.util.Objects; import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.metrics.spi.MeterProviderFactory; import io.opentelemetry.api.trace.TracerProvider; -import io.opentelemetry.api.trace.spi.TracerProviderFactory; import io.opentelemetry.context.propagation.ContextPropagators; +import io.opentelemetry.spi.metrics.MeterProviderFactory; +import io.opentelemetry.spi.trace.TracerProviderFactory; /** * Sleuth implementation of a {@link OpenTelemetry}. @@ -68,11 +68,11 @@ public class OtelOpenTelemetry implements OpenTelemetry { } @Override - public io.opentelemetry.api.OpenTelemetry.Builder toBuilder() { + public io.opentelemetry.api.OpenTelemetryBuilder toBuilder() { return new Builder(this.meterProviderFactory, this.tracerProviderFactory); } - static class Builder implements io.opentelemetry.api.OpenTelemetry.Builder { + static class Builder implements io.opentelemetry.api.OpenTelemetryBuilder { private ContextPropagators propagators; diff --git a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpan.java b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpan.java index 772b82c46..3d1d600ff 100644 --- a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpan.java +++ b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpan.java @@ -16,7 +16,9 @@ package org.springframework.cloud.sleuth.otel.bridge; +import java.time.Instant; import java.util.Objects; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import io.opentelemetry.api.common.AttributeKey; @@ -156,7 +158,7 @@ class SpanFromSpanContext implements io.opentelemetry.api.trace.Span { SpanFromSpanContext(io.opentelemetry.api.trace.Span span, SpanContext newSpanContext, OtelTraceContext otelTraceContext) { - this.span = span; + this.span = span != null ? span : io.opentelemetry.api.trace.Span.wrap(newSpanContext); this.newSpanContext = newSpanContext; this.otelTraceContext = otelTraceContext; } @@ -187,7 +189,12 @@ class SpanFromSpanContext implements io.opentelemetry.api.trace.Span { } @Override - public io.opentelemetry.api.trace.Span addEvent(String name, long timestamp) { + public io.opentelemetry.api.trace.Span addEvent(String name, long timestamp, TimeUnit unit) { + return span.addEvent(name, timestamp, unit); + } + + @Override + public io.opentelemetry.api.trace.Span addEvent(String name, Instant timestamp) { return span.addEvent(name, timestamp); } @@ -197,7 +204,12 @@ class SpanFromSpanContext implements io.opentelemetry.api.trace.Span { } @Override - public io.opentelemetry.api.trace.Span addEvent(String name, Attributes attributes, long timestamp) { + public io.opentelemetry.api.trace.Span addEvent(String name, Attributes attributes, long timestamp, TimeUnit unit) { + return span.addEvent(name, attributes, timestamp, unit); + } + + @Override + public io.opentelemetry.api.trace.Span addEvent(String name, Attributes attributes, Instant timestamp) { return span.addEvent(name, attributes, timestamp); } @@ -242,8 +254,13 @@ class SpanFromSpanContext implements io.opentelemetry.api.trace.Span { } @Override - public void end(long l) { - span.end(l); + public void end(long timestamp, TimeUnit unit) { + span.end(timestamp, unit); + } + + @Override + public void end(Instant timestamp) { + span.end(timestamp); } @Override @@ -256,6 +273,11 @@ class SpanFromSpanContext implements io.opentelemetry.api.trace.Span { return span.isRecording(); } + @Override + public Context storeInContext(Context context) { + return span.storeInContext(context); + } + @Override public String toString() { return "SpanFromSpanContext{" + "span=" + span + ", newSpanContext=" + newSpanContext + '}'; diff --git a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpanBuilder.java b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpanBuilder.java index 277673cd4..c53be3e71 100644 --- a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpanBuilder.java +++ b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelSpanBuilder.java @@ -31,7 +31,7 @@ import org.springframework.util.StringUtils; */ class OtelSpanBuilder implements Span.Builder { - private final io.opentelemetry.api.trace.Span.Builder delegate; + private final io.opentelemetry.api.trace.SpanBuilder delegate; private final List annotations = new LinkedList<>(); @@ -39,11 +39,11 @@ class OtelSpanBuilder implements Span.Builder { private Throwable error; - OtelSpanBuilder(io.opentelemetry.api.trace.Span.Builder delegate) { + OtelSpanBuilder(io.opentelemetry.api.trace.SpanBuilder delegate) { this.delegate = delegate; } - static Span.Builder fromOtel(io.opentelemetry.api.trace.Span.Builder builder) { + static Span.Builder fromOtel(io.opentelemetry.api.trace.SpanBuilder builder) { return new OtelSpanBuilder(builder); } diff --git a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/propagation/BaggageTextMapPropagator.java b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/propagation/BaggageTextMapPropagator.java index 96af07add..eac7bdf32 100644 --- a/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/propagation/BaggageTextMapPropagator.java +++ b/spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/propagation/BaggageTextMapPropagator.java @@ -22,6 +22,7 @@ import java.util.Map; import java.util.stream.Collectors; import io.opentelemetry.api.baggage.Baggage; +import io.opentelemetry.api.baggage.BaggageBuilder; import io.opentelemetry.api.baggage.EntryMetadata; import io.opentelemetry.context.Context; import io.opentelemetry.context.propagation.TextMapPropagator; @@ -73,7 +74,7 @@ public class BaggageTextMapPropagator implements TextMapPropagator { Map baggageEntries = this.remoteFields.stream() .map(s -> new AbstractMap.SimpleEntry<>(s, getter.get(c, s))).filter(e -> e.getValue() != null) .collect(Collectors.toMap((e) -> e.getKey(), (e) -> e.getValue())); - Baggage.Builder builder = Baggage.builder().setParent(context); + BaggageBuilder builder = Baggage.builder().setParent(context); // TODO: [OTEL] magic string baggageEntries.forEach((key, value) -> builder.put(key, value, EntryMetadata.create("propagation=unlimited"))); Baggage baggage = builder.build(); diff --git a/tests/otel/spring-cloud-sleuth-instrumentation-webflux-tests/src/test/java/org/springframework/cloud/sleuth/otel/instrument/web/baggage/Service1Controller.java b/tests/otel/spring-cloud-sleuth-instrumentation-webflux-tests/src/test/java/org/springframework/cloud/sleuth/otel/instrument/web/baggage/Service1Controller.java index 86ed87c4d..c36816579 100644 --- a/tests/otel/spring-cloud-sleuth-instrumentation-webflux-tests/src/test/java/org/springframework/cloud/sleuth/otel/instrument/web/baggage/Service1Controller.java +++ b/tests/otel/spring-cloud-sleuth-instrumentation-webflux-tests/src/test/java/org/springframework/cloud/sleuth/otel/instrument/web/baggage/Service1Controller.java @@ -95,7 +95,7 @@ class Service2Client { log.info("Hello from service1. Calling service2"); return webClient.get().uri(serviceAddress + "/foo").exchange().doOnSuccess(clientResponse -> { log.info("Got response from service2 [{}]", clientResponse); - try (BaggageInScope bs = this.tracer.getBaggage("key")) { + try (BaggageInScope bs = baggageField.makeCurrent()) { this.baggageKey = bs.get(); log.info("Service1: Baggage for [key] is [" + (bs == null ? null : bs.get()) + "]"); }