diff --git a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java index aa0786ec16..9f81ab7f57 100644 --- a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java @@ -28,8 +28,8 @@ public class ChannelFutureListenerInstrumentation extends Instrumenter.Default { public ChannelFutureListenerInstrumentation() { super( - NettyChannelPipelineInstrumentation.INSTRUMENTATION_NAME, - NettyChannelPipelineInstrumentation.ADDITIONAL_INSTRUMENTATION_NAMES); + NettyChannelPipelineInstrumentation.INSTRUMENTATION_NAME, + NettyChannelPipelineInstrumentation.ADDITIONAL_INSTRUMENTATION_NAMES); } @Override diff --git a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientRequestTracingHandler.java b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientRequestTracingHandler.java index 529e56773a..25eec7629b 100644 --- a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientRequestTracingHandler.java +++ b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientRequestTracingHandler.java @@ -53,9 +53,12 @@ public class HttpClientRequestTracingHandler extends ChannelOutboundHandlerAdapt .withTag(DDTags.SPAN_TYPE, DDSpanTypes.HTTP_CLIENT) .start(); - GlobalTracer.get() + // AWS calls are often signed, so we can't add headers without breaking the signature. + if (!request.headers().contains("amz-sdk-invocation-id")) { + GlobalTracer.get() .inject( - span.context(), Format.Builtin.HTTP_HEADERS, new NettyResponseInjectAdapter(request)); + span.context(), Format.Builtin.HTTP_HEADERS, new NettyResponseInjectAdapter(request)); + } ctx.channel().attr(AttributeKeys.CLIENT_ATTRIBUTE_KEY).set(span);