Misc cleanup/minor changes

This commit is contained in:
Tyler Benson 2018-04-24 10:56:19 +08:00 committed by Tyler Benson
parent 21e26d9463
commit 63d308e50d
8 changed files with 19 additions and 14 deletions

View File

@ -48,6 +48,7 @@ public final class AWSClientInstrumentation extends Instrumenter.Configurable {
} }
public static class AWSClientAdvice { public static class AWSClientAdvice {
// Since we're instrumenting the constructor, we can't add onThrowable.
@Advice.OnMethodExit(suppress = Throwable.class) @Advice.OnMethodExit(suppress = Throwable.class)
public static void addHandler( public static void addHandler(
@Advice.FieldValue("requestHandler2s") final List<RequestHandler2> handlers) { @Advice.FieldValue("requestHandler2s") final List<RequestHandler2> handlers) {

View File

@ -61,8 +61,7 @@ public final class FutureInstrumentation extends Instrumenter.Configurable {
"com.google.common.util.concurrent.AbstractFuture$TrustedFuture", "com.google.common.util.concurrent.AbstractFuture$TrustedFuture",
"com.google.common.util.concurrent.AbstractFuture" "com.google.common.util.concurrent.AbstractFuture"
}; };
WHITELISTED_FUTURES = WHITELISTED_FUTURES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(whitelist)));
Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(whitelist)));
} }
public FutureInstrumentation() { public FutureInstrumentation() {
@ -81,7 +80,7 @@ public final class FutureInstrumentation extends Instrumenter.Configurable {
.and( .and(
new ElementMatcher<TypeDescription>() { new ElementMatcher<TypeDescription>() {
@Override @Override
public boolean matches(TypeDescription target) { public boolean matches(final TypeDescription target) {
final boolean whitelisted = WHITELISTED_FUTURES.contains(target.getName()); final boolean whitelisted = WHITELISTED_FUTURES.contains(target.getName());
if (!whitelisted) { if (!whitelisted) {
log.debug("Skipping future instrumentation for {}", target.getName()); log.debug("Skipping future instrumentation for {}", target.getName());
@ -101,13 +100,13 @@ public final class FutureInstrumentation extends Instrumenter.Configurable {
public static class CanceledFutureAdvice { public static class CanceledFutureAdvice {
@Advice.OnMethodEnter(suppress = Throwable.class) @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); return ConcurrentUtils.getDatadogWrapper(future);
} }
@Advice.OnMethodExit(suppress = Throwable.class) @Advice.OnMethodExit(suppress = Throwable.class)
public static void abortTracing( 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) { if (canceled && null != wrapper) {
wrapper.cancel(); wrapper.cancel();
} }

View File

@ -61,6 +61,7 @@ public final class ConnectionInstrumentation extends Instrumenter.Configurable {
return CallDepthThreadLocalMap.get(Connection.class).incrementCallDepth(); return CallDepthThreadLocalMap.get(Connection.class).incrementCallDepth();
} }
// Since we're instrumenting the constructor, we can't add onThrowable.
@Advice.OnMethodExit(suppress = Throwable.class) @Advice.OnMethodExit(suppress = Throwable.class)
public static void constructorExit( public static void constructorExit(
@Advice.Enter final int depth, @Advice.This final Connection connection) @Advice.Enter final int depth, @Advice.This final Connection connection)

View File

@ -71,7 +71,9 @@ public final class KafkaConsumerInstrumentation extends Instrumenter.Configurabl
@Advice.OnMethodExit(suppress = Throwable.class) @Advice.OnMethodExit(suppress = Throwable.class)
public static void wrap(@Advice.Return(readOnly = false) Iterable<ConsumerRecord> iterable) { public static void wrap(@Advice.Return(readOnly = false) Iterable<ConsumerRecord> 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) @Advice.OnMethodExit(suppress = Throwable.class)
public static void wrap(@Advice.Return(readOnly = false) Iterator<ConsumerRecord> iterator) { public static void wrap(@Advice.Return(readOnly = false) Iterator<ConsumerRecord> iterator) {
iterator = if (iterator != null) {
new TracingIterable.TracingIterator( iterator =
iterator, "kafka.consume", ConsumeScopeAction.INSTANCE); new TracingIterable.TracingIterator(
iterator, "kafka.consume", ConsumeScopeAction.INSTANCE);
}
} }
} }

View File

@ -112,11 +112,11 @@ public class KafkaStreamsProcessorInstrumentation {
DDAdvice.create() DDAdvice.create()
.advice( .advice(
isMethod().and(isPublic()).and(named("process")).and(takesArguments(0)), isMethod().and(isPublic()).and(named("process")).and(takesArguments(0)),
StartSpanAdvice.class.getName())) StopSpanAdvice.class.getName()))
.asDecorator(); .asDecorator();
} }
public static class StartSpanAdvice { public static class StopSpanAdvice {
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
public static void stopSpan(@Advice.Thrown final Throwable throwable) { public static void stopSpan(@Advice.Thrown final Throwable throwable) {

View File

@ -45,7 +45,7 @@ public class RoutesInstrumentation extends Instrumenter.Configurable {
public static class RoutesAdvice { public static class RoutesAdvice {
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) @Advice.OnMethodExit(suppress = Throwable.class)
public static void routeMatchEnricher( public static void routeMatchEnricher(
@Advice.Argument(0) final HttpMethod method, @Advice.Return final RouteMatch routeMatch) { @Advice.Argument(0) final HttpMethod method, @Advice.Return final RouteMatch routeMatch) {

View File

@ -14,7 +14,7 @@ public class IBMResourceLevelInstrumentation extends Instrumenter.Configurable {
} }
@Override @Override
protected AgentBuilder apply(AgentBuilder agentBuilder) { protected AgentBuilder apply(final AgentBuilder agentBuilder) {
return agentBuilder return agentBuilder
.type(named("com.ibm.as400.resource.ResourceLevel")) .type(named("com.ibm.as400.resource.ResourceLevel"))
.transform(DDTransformers.defaultTransformers()) .transform(DDTransformers.defaultTransformers())

View File

@ -38,7 +38,7 @@ public class ListWriter extends CopyOnWriteArrayList<List<DDSpan>> implements Wr
} }
latches.add(latch); latches.add(latch);
} }
if (!latch.await(5, TimeUnit.SECONDS)) { if (!latch.await(20, TimeUnit.SECONDS)) {
throw new TimeoutException("Timeout waiting for " + number + " trace(s)."); throw new TimeoutException("Timeout waiting for " + number + " trace(s).");
} }
} }