diff --git a/dd-java-agent/instrumentation/jedis-1.4/src/main/java/datadog/trace/instrumentation/jedis/JedisInstrumentation.java b/dd-java-agent/instrumentation/jedis-1.4/src/main/java/datadog/trace/instrumentation/jedis/JedisInstrumentation.java index de40f3fae4..4201a10def 100644 --- a/dd-java-agent/instrumentation/jedis-1.4/src/main/java/datadog/trace/instrumentation/jedis/JedisInstrumentation.java +++ b/dd-java-agent/instrumentation/jedis-1.4/src/main/java/datadog/trace/instrumentation/jedis/JedisInstrumentation.java @@ -1,5 +1,6 @@ package datadog.trace.instrumentation.jedis; +import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.jedis.JedisClientDecorator.DECORATE; @@ -7,6 +8,7 @@ import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; @@ -30,9 +32,14 @@ public final class JedisInstrumentation extends Instrumenter.Default { super("jedis", "redis"); } + @Override + public ElementMatcher classLoaderMatcher() { + return not(classLoaderHasClasses("redis.clients.jedis.commands.ProtocolCommand")); + } + @Override public ElementMatcher typeMatcher() { - return named("redis.clients.jedis.Protocol").and(named("redis.clients.jedis.JedisCommands")); + return named("redis.clients.jedis.Protocol"); } @Override diff --git a/dd-java-agent/instrumentation/jedis-3.0/jedis-3.0.gradle b/dd-java-agent/instrumentation/jedis-3.0/jedis-3.0.gradle index 8199be5253..c191247c7f 100644 --- a/dd-java-agent/instrumentation/jedis-3.0/jedis-3.0.gradle +++ b/dd-java-agent/instrumentation/jedis-3.0/jedis-3.0.gradle @@ -1,9 +1,14 @@ muzzle { + fail { + group = "redis.clients" + module = "jedis" + versions = "[,3.0.0)" + } + pass { group = "redis.clients" module = "jedis" versions = "[3.0.0,)" - assertInverse = true } } @@ -22,6 +27,6 @@ dependencies { testCompile group: 'com.github.kstyrc', name: 'embedded-redis', version: '0.6' testCompile group: 'redis.clients', name: 'jedis', version: '3.0.0' - + latestDepTestCompile group: 'redis.clients', name: 'jedis', version: '3.+' } diff --git a/dd-java-agent/instrumentation/jedis-3.0/src/main/java/datadog/trace/instrumentation/jedis30/JedisInstrumentation.java b/dd-java-agent/instrumentation/jedis-3.0/src/main/java/datadog/trace/instrumentation/jedis30/JedisInstrumentation.java index ce3b76ff8c..635ec2bfb0 100644 --- a/dd-java-agent/instrumentation/jedis-3.0/src/main/java/datadog/trace/instrumentation/jedis30/JedisInstrumentation.java +++ b/dd-java-agent/instrumentation/jedis-3.0/src/main/java/datadog/trace/instrumentation/jedis30/JedisInstrumentation.java @@ -30,8 +30,7 @@ public final class JedisInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return named("redis.clients.jedis.Protocol") - .and(named("redis.clients.jedis.commands.ProtocolCommand")); + return named("redis.clients.jedis.Protocol"); } @Override