Kafka instrumentation: make return type more general in instrumentation matching

This commit is contained in:
Nikolay Martynov 2019-07-10 13:47:20 -04:00
parent 2e62ca8497
commit f484295460
1 changed files with 2 additions and 1 deletions

View File

@ -1,5 +1,6 @@
package datadog.trace.instrumentation.kafka_clients; package datadog.trace.instrumentation.kafka_clients;
import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType;
import static datadog.trace.instrumentation.kafka_clients.KafkaDecorator.CONSUMER_DECORATE; import static datadog.trace.instrumentation.kafka_clients.KafkaDecorator.CONSUMER_DECORATE;
import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isMethod;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -55,7 +56,7 @@ public final class KafkaConsumerInstrumentation extends Instrumenter.Default {
.and( .and(
takesArgument(0, String.class) takesArgument(0, String.class)
.or(takesArgument(0, named("org.apache.kafka.common.TopicPartition")))) .or(takesArgument(0, named("org.apache.kafka.common.TopicPartition"))))
.and(returns(Iterable.class)), .and(returns(safeHasSuperType(named(Iterable.class.getName())))),
IterableAdvice.class.getName()); IterableAdvice.class.getName());
transformers.put( transformers.put(
isMethod() isMethod()