From c321f8d949ffac50ef1c1d7a0c2a1dae8aea0182 Mon Sep 17 00:00:00 2001 From: jamesmartinpp Date: Tue, 20 Sep 2022 19:47:46 -0500 Subject: [PATCH] Propagate client span context in doOnRequest (#6621) Copying the changes from Mike W. This fixes the problem where the jaxrs and http client request spans are siblings instead of parent/child. @mateuszrzeszutek please review Co-authored-by: Trask Stalnaker --- .../reactornetty/v1_0/HttpClientInstrumentation.java | 4 +++- .../reactornetty/v1_0/AbstractReactorNettyHttpClientTest.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) 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);