diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java index f558fb57c..ba251de3b 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java @@ -162,12 +162,15 @@ final class TraceExchangeFilterFunction implements ExchangeFilterFunction { if (log.isDebugEnabled()) { log.debug("Instrumenting WebClient call"); } + Span parentSpan = tracer().currentSpan(); Span span = handler().handleSend(wrapper); if (log.isDebugEnabled()) { log.debug("Handled send of " + span); } - - return new MonoWebClientTrace(next, wrapper.buildRequest(), this, span); + MonoWebClientTrace trace = new MonoWebClientTrace(next, wrapper.buildRequest(), + this, span); + tracer().withSpanInScope(parentSpan); + return trace; } @SuppressWarnings("unchecked")