From 017caaf9b2114a0573685f8cdf9009f5a6d79747 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 1 Apr 2021 09:18:19 +0200 Subject: [PATCH] WebClient reuses current trace context if present; fixes gh-1891 --- .../instrument/web/client/TraceExchangeFilterFunction.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceExchangeFilterFunction.java b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceExchangeFilterFunction.java index 69e954b8f..487148e1e 100644 --- a/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceExchangeFilterFunction.java +++ b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceExchangeFilterFunction.java @@ -113,6 +113,9 @@ public final class TraceExchangeFilterFunction implements ExchangeFilterFunction } ClientRequestWrapper wrapper = new ClientRequestWrapper(this.request); TraceContext parent = context.hasKey(TraceContext.class) ? context.get(TraceContext.class) : null; + if (parent == null) { + parent = this.currentTraceContext.context(); + } Span span = handler.handleSend(wrapper, parent); if (log.isTraceEnabled()) { log.trace("HttpClientHandler::handleSend: " + span);