diff --git a/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/HttpClientInstrumentation.java b/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/HttpClientInstrumentation.java index d3f9fd5ff517..9c1a49585ae8 100644 --- a/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/HttpClientInstrumentation.java +++ b/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/HttpClientInstrumentation.java @@ -85,7 +85,9 @@ public static void onEnter( BiConsumer callback) { if (DecoratorFunctions.shouldDecorate(callback.getClass())) { - callback = new DecoratorFunctions.OnMessageDecorator<>(callback, PropagatedContext.PARENT); + // perform the callback with the client span active (instead of the parent) since this + // callback occurs after the connection is made + callback = new DecoratorFunctions.OnMessageDecorator<>(callback, PropagatedContext.CLIENT); } } } diff --git a/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/AbstractReactorNettyHttpClientTest.java b/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/AbstractReactorNettyHttpClientTest.java index b6a84f5b69c6..a07774c73055 100644 --- a/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/AbstractReactorNettyHttpClientTest.java +++ b/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/AbstractReactorNettyHttpClientTest.java @@ -180,7 +180,7 @@ void shouldExposeContextToHttpClientCallbacks() throws InterruptedException { span -> span.hasName("HTTP GET").hasKind(CLIENT).hasParent(parentSpan), span -> span.hasName("test-http-server").hasKind(SERVER).hasParent(nettyClientSpan)); - assertSameSpan(parentSpan, onRequestSpan); + assertSameSpan(nettyClientSpan, onRequestSpan); assertSameSpan(nettyClientSpan, afterRequestSpan); assertSameSpan(nettyClientSpan, onResponseSpan); assertSameSpan(parentSpan, afterResponseSpan);