From 63d308e50d04ff04c8c4700bb012b20087c677c1 Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Tue, 24 Apr 2018 10:56:19 +0800 Subject: [PATCH] Misc cleanup/minor changes --- .../aws/AWSClientInstrumentation.java | 1 + .../java/concurrent/FutureInstrumentation.java | 9 ++++----- .../jdbc/ConnectionInstrumentation.java | 1 + .../kafka_clients/KafkaConsumerInstrumentation.java | 12 ++++++++---- .../KafkaStreamsProcessorInstrumentation.java | 4 ++-- .../sparkjava/RoutesInstrumentation.java | 2 +- .../test/java/IBMResourceLevelInstrumentation.java | 2 +- .../java/datadog/trace/common/writer/ListWriter.java | 2 +- 8 files changed, 19 insertions(+), 14 deletions(-) diff --git a/dd-java-agent/instrumentation/aws-sdk/src/main/java/datadog/trace/instrumentation/aws/AWSClientInstrumentation.java b/dd-java-agent/instrumentation/aws-sdk/src/main/java/datadog/trace/instrumentation/aws/AWSClientInstrumentation.java index 82fe757849..a3ae8dd0c1 100644 --- a/dd-java-agent/instrumentation/aws-sdk/src/main/java/datadog/trace/instrumentation/aws/AWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-sdk/src/main/java/datadog/trace/instrumentation/aws/AWSClientInstrumentation.java @@ -48,6 +48,7 @@ public final class AWSClientInstrumentation extends Instrumenter.Configurable { } public static class AWSClientAdvice { + // Since we're instrumenting the constructor, we can't add onThrowable. @Advice.OnMethodExit(suppress = Throwable.class) public static void addHandler( @Advice.FieldValue("requestHandler2s") final List handlers) { diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java index d80fab4353..8b5b46c286 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java @@ -61,8 +61,7 @@ public final class FutureInstrumentation extends Instrumenter.Configurable { "com.google.common.util.concurrent.AbstractFuture$TrustedFuture", "com.google.common.util.concurrent.AbstractFuture" }; - WHITELISTED_FUTURES = - Collections.unmodifiableSet(new HashSet(Arrays.asList(whitelist))); + WHITELISTED_FUTURES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(whitelist))); } public FutureInstrumentation() { @@ -81,7 +80,7 @@ public final class FutureInstrumentation extends Instrumenter.Configurable { .and( new ElementMatcher() { @Override - public boolean matches(TypeDescription target) { + public boolean matches(final TypeDescription target) { final boolean whitelisted = WHITELISTED_FUTURES.contains(target.getName()); if (!whitelisted) { log.debug("Skipping future instrumentation for {}", target.getName()); @@ -101,13 +100,13 @@ public final class FutureInstrumentation extends Instrumenter.Configurable { public static class CanceledFutureAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) - public static DatadogWrapper findWrapper(@Advice.This Future future) { + public static DatadogWrapper findWrapper(@Advice.This final Future future) { return ConcurrentUtils.getDatadogWrapper(future); } @Advice.OnMethodExit(suppress = Throwable.class) public static void abortTracing( - @Advice.Enter final DatadogWrapper wrapper, @Advice.Return boolean canceled) { + @Advice.Enter final DatadogWrapper wrapper, @Advice.Return final boolean canceled) { if (canceled && null != wrapper) { wrapper.cancel(); } diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java index 557cafc5b6..c1bd268513 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java @@ -61,6 +61,7 @@ public final class ConnectionInstrumentation extends Instrumenter.Configurable { return CallDepthThreadLocalMap.get(Connection.class).incrementCallDepth(); } + // Since we're instrumenting the constructor, we can't add onThrowable. @Advice.OnMethodExit(suppress = Throwable.class) public static void constructorExit( @Advice.Enter final int depth, @Advice.This final Connection connection) diff --git a/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaConsumerInstrumentation.java b/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaConsumerInstrumentation.java index ed182f8622..d84d978a19 100644 --- a/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaConsumerInstrumentation.java +++ b/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaConsumerInstrumentation.java @@ -71,7 +71,9 @@ public final class KafkaConsumerInstrumentation extends Instrumenter.Configurabl @Advice.OnMethodExit(suppress = Throwable.class) public static void wrap(@Advice.Return(readOnly = false) Iterable iterable) { - iterable = new TracingIterable(iterable, "kafka.consume", ConsumeScopeAction.INSTANCE); + if (iterable != null) { + iterable = new TracingIterable(iterable, "kafka.consume", ConsumeScopeAction.INSTANCE); + } } } @@ -79,9 +81,11 @@ public final class KafkaConsumerInstrumentation extends Instrumenter.Configurabl @Advice.OnMethodExit(suppress = Throwable.class) public static void wrap(@Advice.Return(readOnly = false) Iterator iterator) { - iterator = - new TracingIterable.TracingIterator( - iterator, "kafka.consume", ConsumeScopeAction.INSTANCE); + if (iterator != null) { + iterator = + new TracingIterable.TracingIterator( + iterator, "kafka.consume", ConsumeScopeAction.INSTANCE); + } } } diff --git a/dd-java-agent/instrumentation/kafka-streams-0.11/src/main/java/datadog/trace/instrumentation/kafka_streams/KafkaStreamsProcessorInstrumentation.java b/dd-java-agent/instrumentation/kafka-streams-0.11/src/main/java/datadog/trace/instrumentation/kafka_streams/KafkaStreamsProcessorInstrumentation.java index a60499d3bb..e9f8293bc8 100644 --- a/dd-java-agent/instrumentation/kafka-streams-0.11/src/main/java/datadog/trace/instrumentation/kafka_streams/KafkaStreamsProcessorInstrumentation.java +++ b/dd-java-agent/instrumentation/kafka-streams-0.11/src/main/java/datadog/trace/instrumentation/kafka_streams/KafkaStreamsProcessorInstrumentation.java @@ -112,11 +112,11 @@ public class KafkaStreamsProcessorInstrumentation { DDAdvice.create() .advice( isMethod().and(isPublic()).and(named("process")).and(takesArguments(0)), - StartSpanAdvice.class.getName())) + StopSpanAdvice.class.getName())) .asDecorator(); } - public static class StartSpanAdvice { + public static class StopSpanAdvice { @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void stopSpan(@Advice.Thrown final Throwable throwable) { diff --git a/dd-java-agent/instrumentation/sparkjava-2.4/src/main/java/datadog/trace/instrumentation/sparkjava/RoutesInstrumentation.java b/dd-java-agent/instrumentation/sparkjava-2.4/src/main/java/datadog/trace/instrumentation/sparkjava/RoutesInstrumentation.java index 063a0b6765..6856ea3d56 100644 --- a/dd-java-agent/instrumentation/sparkjava-2.4/src/main/java/datadog/trace/instrumentation/sparkjava/RoutesInstrumentation.java +++ b/dd-java-agent/instrumentation/sparkjava-2.4/src/main/java/datadog/trace/instrumentation/sparkjava/RoutesInstrumentation.java @@ -45,7 +45,7 @@ public class RoutesInstrumentation extends Instrumenter.Configurable { public static class RoutesAdvice { - @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) + @Advice.OnMethodExit(suppress = Throwable.class) public static void routeMatchEnricher( @Advice.Argument(0) final HttpMethod method, @Advice.Return final RouteMatch routeMatch) { diff --git a/dd-java-agent/testing/src/test/java/IBMResourceLevelInstrumentation.java b/dd-java-agent/testing/src/test/java/IBMResourceLevelInstrumentation.java index e8030deff7..19761de49d 100644 --- a/dd-java-agent/testing/src/test/java/IBMResourceLevelInstrumentation.java +++ b/dd-java-agent/testing/src/test/java/IBMResourceLevelInstrumentation.java @@ -14,7 +14,7 @@ public class IBMResourceLevelInstrumentation extends Instrumenter.Configurable { } @Override - protected AgentBuilder apply(AgentBuilder agentBuilder) { + protected AgentBuilder apply(final AgentBuilder agentBuilder) { return agentBuilder .type(named("com.ibm.as400.resource.ResourceLevel")) .transform(DDTransformers.defaultTransformers()) diff --git a/dd-trace-ot/src/main/java/datadog/trace/common/writer/ListWriter.java b/dd-trace-ot/src/main/java/datadog/trace/common/writer/ListWriter.java index 14846e1b0b..e43b2c831d 100644 --- a/dd-trace-ot/src/main/java/datadog/trace/common/writer/ListWriter.java +++ b/dd-trace-ot/src/main/java/datadog/trace/common/writer/ListWriter.java @@ -38,7 +38,7 @@ public class ListWriter extends CopyOnWriteArrayList> implements Wr } latches.add(latch); } - if (!latch.await(5, TimeUnit.SECONDS)) { + if (!latch.await(20, TimeUnit.SECONDS)) { throw new TimeoutException("Timeout waiting for " + number + " trace(s)."); } }