From d4943eb2b6a4a130ce1b2cc12bffc25d372e55af Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 25 Jan 2019 15:50:43 -0500 Subject: [PATCH] netty 4.0: do not modify headers in aws request --- .../netty40/ChannelFutureListenerInstrumentation.java | 4 ++-- .../netty40/client/HttpClientRequestTracingHandler.java | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) 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);