Use more efficient namedOneOf where possible (#3200)
* Use more efficient namedOneOf where possible * Fix - hasClassesNamed does and not or
This commit is contained in:
parent
5faa39b597
commit
cefaecab3f
|
@ -11,7 +11,7 @@ import static io.opentelemetry.javaagent.instrumentation.extannotations.External
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
|
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith;
|
import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.isDeclaredBy;
|
import static net.bytebuddy.matcher.ElementMatchers.isDeclaredBy;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.none;
|
import static net.bytebuddy.matcher.ElementMatchers.none;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.not;
|
import static net.bytebuddy.matcher.ElementMatchers.not;
|
||||||
|
|
||||||
|
@ -82,18 +82,11 @@ public class ExternalAnnotationInstrumentation implements TypeInstrumentation {
|
||||||
traceAnnotationMatcher = none();
|
traceAnnotationMatcher = none();
|
||||||
} else {
|
} else {
|
||||||
ElementMatcher.Junction<ClassLoader> classLoaderMatcher = none();
|
ElementMatcher.Junction<ClassLoader> classLoaderMatcher = none();
|
||||||
ElementMatcher.Junction<NamedElement> methodTraceMatcher = none();
|
|
||||||
for (String annotationName : additionalTraceAnnotations) {
|
for (String annotationName : additionalTraceAnnotations) {
|
||||||
if (methodTraceMatcher == null) {
|
classLoaderMatcher = classLoaderMatcher.or(hasClassesNamed(annotationName));
|
||||||
classLoaderMatcher = hasClassesNamed(annotationName);
|
|
||||||
methodTraceMatcher = named(annotationName);
|
|
||||||
} else {
|
|
||||||
classLoaderMatcher = classLoaderMatcher.or(hasClassesNamed(annotationName));
|
|
||||||
methodTraceMatcher = methodTraceMatcher.or(named(annotationName));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
this.classLoaderOptimization = classLoaderMatcher;
|
this.classLoaderOptimization = classLoaderMatcher;
|
||||||
this.traceAnnotationMatcher = methodTraceMatcher;
|
this.traceAnnotationMatcher = namedOneOf(additionalTraceAnnotations.toArray(new String[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
excludedMethodsMatcher = configureExcludedMethods();
|
excludedMethodsMatcher = configureExcludedMethods();
|
||||||
|
|
|
@ -12,6 +12,7 @@ import static io.opentelemetry.javaagent.instrumentation.geode.GeodeInstrumenter
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith;
|
import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
@ -40,22 +41,23 @@ public class GeodeRegionInstrumentation implements TypeInstrumentation {
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
isMethod()
|
isMethod()
|
||||||
.and(
|
.and(
|
||||||
named("clear")
|
namedOneOf(
|
||||||
|
"clear",
|
||||||
|
"create",
|
||||||
|
"destroy",
|
||||||
|
"entrySet",
|
||||||
|
"get",
|
||||||
|
"getAll",
|
||||||
|
"invalidate",
|
||||||
|
"replace")
|
||||||
.or(nameStartsWith("contains"))
|
.or(nameStartsWith("contains"))
|
||||||
.or(named("create"))
|
|
||||||
.or(named("destroy"))
|
|
||||||
.or(named("entrySet"))
|
|
||||||
.or(named("get"))
|
|
||||||
.or(named("getAll"))
|
|
||||||
.or(named("invalidate"))
|
|
||||||
.or(nameStartsWith("keySet"))
|
.or(nameStartsWith("keySet"))
|
||||||
.or(nameStartsWith("put"))
|
.or(nameStartsWith("put"))
|
||||||
.or(nameStartsWith("remove"))
|
.or(nameStartsWith("remove"))),
|
||||||
.or(named("replace"))),
|
|
||||||
this.getClass().getName() + "$SimpleAdvice");
|
this.getClass().getName() + "$SimpleAdvice");
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
isMethod()
|
isMethod()
|
||||||
.and(named("existsValue").or(named("query")).or(named("selectValue")))
|
.and(namedOneOf("existsValue", "query", "selectValue"))
|
||||||
.and(takesArgument(0, String.class)),
|
.and(takesArgument(0, String.class)),
|
||||||
this.getClass().getName() + "$QueryAdvice");
|
this.getClass().getName() + "$QueryAdvice");
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v2_0;
|
||||||
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;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||||
|
@ -35,7 +36,7 @@ public class JerseyClientConnectionErrorInstrumentation implements TypeInstrumen
|
||||||
this.getClass().getName() + "$InvokeAdvice");
|
this.getClass().getName() + "$InvokeAdvice");
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
isMethod()
|
isMethod()
|
||||||
.and(named("submit").or(named("createRunnableForAsyncProcessing")))
|
.and(namedOneOf("submit", "createRunnableForAsyncProcessing"))
|
||||||
.and(takesArgument(0, named("org.glassfish.jersey.client.ClientRequest")))
|
.and(takesArgument(0, named("org.glassfish.jersey.client.ClientRequest")))
|
||||||
.and(takesArgument(1, named("org.glassfish.jersey.client.ResponseCallback"))),
|
.and(takesArgument(1, named("org.glassfish.jersey.client.ResponseCallback"))),
|
||||||
this.getClass().getName() + "$SubmitAdvice");
|
this.getClass().getName() + "$SubmitAdvice");
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0;
|
package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0;
|
||||||
|
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||||
|
@ -29,8 +30,9 @@ public class JerseyResourceMethodDispatcherInstrumentation implements TypeInstru
|
||||||
.and(
|
.and(
|
||||||
takesArgument(
|
takesArgument(
|
||||||
1,
|
1,
|
||||||
named("javax.ws.rs.core.Request")
|
namedOneOf(
|
||||||
.or(named("org.glassfish.jersey.server.ContainerRequest")))),
|
"javax.ws.rs.core.Request",
|
||||||
|
"org.glassfish.jersey.server.ContainerRequest"))),
|
||||||
JerseyResourceMethodDispatcherInstrumentation.class.getName() + "$DispatchAdvice");
|
JerseyResourceMethodDispatcherInstrumentation.class.getName() + "$DispatchAdvice");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0;
|
package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0;
|
||||||
|
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||||
|
@ -33,8 +34,9 @@ public class ResteasyRootNodeTypeInstrumentation implements TypeInstrumentation
|
||||||
.and(
|
.and(
|
||||||
takesArgument(
|
takesArgument(
|
||||||
1,
|
1,
|
||||||
named("org.jboss.resteasy.core.ResourceInvoker")
|
namedOneOf(
|
||||||
.or(named("org.jboss.resteasy.spi.ResourceInvoker")))),
|
"org.jboss.resteasy.core.ResourceInvoker",
|
||||||
|
"org.jboss.resteasy.spi.ResourceInvoker"))),
|
||||||
ResteasyRootNodeTypeInstrumentation.class.getName() + "$AddInvokerAdvice");
|
ResteasyRootNodeTypeInstrumentation.class.getName() + "$AddInvokerAdvice");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.kotlinxcoroutines;
|
package io.opentelemetry.javaagent.instrumentation.kotlinxcoroutines;
|
||||||
|
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||||
|
@ -24,13 +25,11 @@ public class KotlinCoroutinesInstrumentation implements TypeInstrumentation {
|
||||||
@Override
|
@Override
|
||||||
public void transform(TypeTransformer transformer) {
|
public void transform(TypeTransformer transformer) {
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
named("launch")
|
namedOneOf("launch", "launch$default")
|
||||||
.or(named("launch$default"))
|
|
||||||
.and(takesArgument(1, named("kotlin.coroutines.CoroutineContext"))),
|
.and(takesArgument(1, named("kotlin.coroutines.CoroutineContext"))),
|
||||||
this.getClass().getName() + "$LaunchAdvice");
|
this.getClass().getName() + "$LaunchAdvice");
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
named("runBlocking")
|
namedOneOf("runBlocking", "runBlocking$default")
|
||||||
.or(named("runBlocking$default"))
|
|
||||||
.and(takesArgument(0, named("kotlin.coroutines.CoroutineContext"))),
|
.and(takesArgument(0, named("kotlin.coroutines.CoroutineContext"))),
|
||||||
this.getClass().getName() + "$RunBlockingAdvice");
|
this.getClass().getName() + "$RunBlockingAdvice");
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.ha
|
||||||
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;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
||||||
|
|
||||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||||
|
@ -45,7 +46,7 @@ public class LoggingEventInstrumentation implements TypeInstrumentation {
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
isMethod()
|
isMethod()
|
||||||
.and(isPublic())
|
.and(isPublic())
|
||||||
.and(named("getMDCPropertyMap").or(named("getMdc")))
|
.and(namedOneOf("getMDCPropertyMap", "getMdc"))
|
||||||
.and(takesArguments(0)),
|
.and(takesArguments(0)),
|
||||||
LoggingEventInstrumentation.class.getName() + "$GetMdcAdvice");
|
LoggingEventInstrumentation.class.getName() + "$GetMdcAdvice");
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.ha
|
||||||
import static io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge.currentContext;
|
import static io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge.currentContext;
|
||||||
import static io.opentelemetry.javaagent.instrumentation.methods.MethodInstrumenters.instrumenter;
|
import static io.opentelemetry.javaagent.instrumentation.methods.MethodInstrumenters.instrumenter;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
|
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
|
@ -18,7 +19,6 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import net.bytebuddy.asm.Advice;
|
import net.bytebuddy.asm.Advice;
|
||||||
import net.bytebuddy.description.method.MethodDescription;
|
|
||||||
import net.bytebuddy.description.type.TypeDescription;
|
import net.bytebuddy.description.type.TypeDescription;
|
||||||
import net.bytebuddy.matcher.ElementMatcher;
|
import net.bytebuddy.matcher.ElementMatcher;
|
||||||
|
|
||||||
|
@ -43,17 +43,9 @@ public class MethodInstrumentation implements TypeInstrumentation {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void transform(TypeTransformer transformer) {
|
public void transform(TypeTransformer transformer) {
|
||||||
ElementMatcher.Junction<MethodDescription> methodMatchers = null;
|
|
||||||
for (String methodName : methodNames) {
|
|
||||||
if (methodMatchers == null) {
|
|
||||||
methodMatchers = named(methodName);
|
|
||||||
} else {
|
|
||||||
methodMatchers = methodMatchers.or(named(methodName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
methodMatchers, MethodInstrumentation.class.getName() + "$MethodAdvice");
|
namedOneOf(methodNames.toArray(new String[0])),
|
||||||
|
MethodInstrumentation.class.getName() + "$MethodAdvice");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class MethodAdvice {
|
public static class MethodAdvice {
|
||||||
|
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.mongo.v3_7;
|
||||||
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;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import com.mongodb.async.SingleResultCallback;
|
import com.mongodb.async.SingleResultCallback;
|
||||||
|
@ -22,8 +23,8 @@ final class BaseClusterInstrumentation implements TypeInstrumentation {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ElementMatcher<TypeDescription> typeMatcher() {
|
public ElementMatcher<TypeDescription> typeMatcher() {
|
||||||
return named("com.mongodb.connection.BaseCluster")
|
return namedOneOf(
|
||||||
.or(named("com.mongodb.internal.connection.BaseCluster"));
|
"com.mongodb.connection.BaseCluster", "com.mongodb.internal.connection.BaseCluster");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.netty.v4_0;
|
||||||
import static io.opentelemetry.javaagent.instrumentation.netty.v4_0.server.NettyHttpServerTracer.tracer;
|
import static io.opentelemetry.javaagent.instrumentation.netty.v4_0.server.NettyHttpServerTracer.tracer;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||||
|
@ -22,8 +23,9 @@ public class AbstractChannelHandlerContextInstrumentation implements TypeInstrum
|
||||||
@Override
|
@Override
|
||||||
public ElementMatcher<TypeDescription> typeMatcher() {
|
public ElementMatcher<TypeDescription> typeMatcher() {
|
||||||
// Different classes depending on Netty version
|
// Different classes depending on Netty version
|
||||||
return named("io.netty.channel.AbstractChannelHandlerContext")
|
return namedOneOf(
|
||||||
.or(named("io.netty.channel.DefaultChannelHandlerContext"));
|
"io.netty.channel.AbstractChannelHandlerContext",
|
||||||
|
"io.netty.channel.DefaultChannelHandlerContext");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -9,6 +9,7 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.
|
||||||
import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed;
|
import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
|
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||||
|
@ -38,7 +39,7 @@ public class ChannelInstrumentation implements TypeInstrumentation {
|
||||||
@Override
|
@Override
|
||||||
public void transform(TypeTransformer transformer) {
|
public void transform(TypeTransformer transformer) {
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
isMethod().and(named("write").or(named("writeAndFlush"))),
|
isMethod().and(namedOneOf("write", "writeAndFlush")),
|
||||||
ChannelInstrumentation.class.getName() + "$AttachContextAdvice");
|
ChannelInstrumentation.class.getName() + "$AttachContextAdvice");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.
|
||||||
import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed;
|
import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
|
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import io.opentelemetry.instrumentation.netty.v4_1.AttributeKeys;
|
import io.opentelemetry.instrumentation.netty.v4_1.AttributeKeys;
|
||||||
|
@ -39,7 +40,7 @@ public class ChannelInstrumentation implements TypeInstrumentation {
|
||||||
@Override
|
@Override
|
||||||
public void transform(TypeTransformer transformer) {
|
public void transform(TypeTransformer transformer) {
|
||||||
transformer.applyAdviceToMethod(
|
transformer.applyAdviceToMethod(
|
||||||
isMethod().and(named("write").or(named("writeAndFlush"))),
|
isMethod().and(namedOneOf("write", "writeAndFlush")),
|
||||||
ChannelInstrumentation.class.getName() + "$AttachContextAdvice");
|
ChannelInstrumentation.class.getName() + "$AttachContextAdvice");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.spring.batch.chunk;
|
||||||
|
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
|
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||||
|
@ -24,10 +25,11 @@ public class StepBuilderInstrumentation implements TypeInstrumentation {
|
||||||
@Override
|
@Override
|
||||||
public ElementMatcher<TypeDescription> typeMatcher() {
|
public ElementMatcher<TypeDescription> typeMatcher() {
|
||||||
// Spring Batch Java DSL and XML config
|
// Spring Batch Java DSL and XML config
|
||||||
return named("org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder")
|
return namedOneOf(
|
||||||
|
"org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder",
|
||||||
// JSR-352 XML config
|
// JSR-352 XML config
|
||||||
.or(named("org.springframework.batch.core.jsr.step.builder.JsrSimpleStepBuilder"))
|
"org.springframework.batch.core.jsr.step.builder.JsrSimpleStepBuilder",
|
||||||
.or(named("org.springframework.batch.core.jsr.step.builder.JsrBatchletStepBuilder"));
|
"org.springframework.batch.core.jsr.step.builder.JsrBatchletStepBuilder");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.vertx.reactive;
|
||||||
import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed;
|
import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
|
import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
|
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||||
|
@ -31,8 +32,9 @@ public class AsyncResultSingleInstrumentation implements TypeInstrumentation {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ElementMatcher<TypeDescription> typeMatcher() {
|
public ElementMatcher<TypeDescription> typeMatcher() {
|
||||||
return named("io.vertx.reactivex.core.impl.AsyncResultSingle")
|
return namedOneOf(
|
||||||
.or(named("io.vertx.reactivex.impl.AsyncResultSingle"));
|
"io.vertx.reactivex.core.impl.AsyncResultSingle",
|
||||||
|
"io.vertx.reactivex.impl.AsyncResultSingle");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue