Replacing Advice.class references
Replacing Advice.class references with string construction. This stops the JVM from loading the Advice classes which are used as templates for byte buddy and doesn't ever need to be run directly. This eliminates ~130 class loads at start-up -- and saves 0.5MiB in metaspace
This commit is contained in:
parent
28776d9d1c
commit
6b096c2240
|
@ -58,12 +58,12 @@ public final class AkkaHttpClientInstrumentation extends Instrumenter.Default {
|
|||
// This is mainly for compatibility with 10.0
|
||||
transformers.put(
|
||||
named("singleRequest").and(takesArgument(0, named("akka.http.scaladsl.model.HttpRequest"))),
|
||||
SingleRequestAdvice.class.getName());
|
||||
AkkaHttpClientInstrumentation.class.getName() + "$SingleRequestAdvice");
|
||||
// This is for 10.1+
|
||||
transformers.put(
|
||||
named("singleRequestImpl")
|
||||
.and(takesArgument(0, named("akka.http.scaladsl.model.HttpRequest"))),
|
||||
SingleRequestAdvice.class.getName());
|
||||
AkkaHttpClientInstrumentation.class.getName() + "$SingleRequestAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -69,10 +69,10 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default {
|
|||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("bindAndHandleSync").and(takesArgument(0, named("scala.Function1"))),
|
||||
AkkaHttpSyncAdvice.class.getName());
|
||||
AkkaHttpServerInstrumentation.class.getName() + "$AkkaHttpSyncAdvice");
|
||||
transformers.put(
|
||||
named("bindAndHandleAsync").and(takesArgument(0, named("scala.Function1"))),
|
||||
AkkaHttpAsyncAdvice.class.getName());
|
||||
AkkaHttpServerInstrumentation.class.getName() + "$AkkaHttpAsyncAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ public class ApacheHttpAsyncClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(1, named("org.apache.http.nio.protocol.HttpAsyncResponseConsumer")))
|
||||
.and(takesArgument(2, named("org.apache.http.protocol.HttpContext")))
|
||||
.and(takesArgument(3, named("org.apache.http.concurrent.FutureCallback"))),
|
||||
ClientAdvice.class.getName());
|
||||
ApacheHttpAsyncClientInstrumentation.class.getName() + "$ClientAdvice");
|
||||
}
|
||||
|
||||
public static class ClientAdvice {
|
||||
|
|
|
@ -40,7 +40,7 @@ public class ApacheHttpClientRedirectInstrumentation extends Instrumenter.Defaul
|
|||
isMethod()
|
||||
.and(named("getRedirect"))
|
||||
.and(takesArgument(0, named("org.apache.http.HttpRequest"))),
|
||||
ClientRedirectAdvice.class.getName());
|
||||
ApacheHttpClientRedirectInstrumentation.class.getName() + "$ClientRedirectAdvice");
|
||||
}
|
||||
|
||||
public static class ClientRedirectAdvice {
|
||||
|
|
|
@ -75,7 +75,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(not(isAbstract()))
|
||||
.and(takesArguments(1))
|
||||
.and(takesArgument(0, named("org.apache.http.client.methods.HttpUriRequest"))),
|
||||
UriRequestAdvice.class.getName());
|
||||
ApacheHttpClientInstrumentation.class.getName() + "$UriRequestAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod()
|
||||
|
@ -84,7 +84,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArguments(2))
|
||||
.and(takesArgument(0, named("org.apache.http.client.methods.HttpUriRequest")))
|
||||
.and(takesArgument(1, named("org.apache.http.protocol.HttpContext"))),
|
||||
UriRequestAdvice.class.getName());
|
||||
ApacheHttpClientInstrumentation.class.getName() + "$UriRequestAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod()
|
||||
|
@ -93,7 +93,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArguments(2))
|
||||
.and(takesArgument(0, named("org.apache.http.client.methods.HttpUriRequest")))
|
||||
.and(takesArgument(1, named("org.apache.http.client.ResponseHandler"))),
|
||||
UriRequestWithHandlerAdvice.class.getName());
|
||||
ApacheHttpClientInstrumentation.class.getName() + "$UriRequestWithHandlerAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod()
|
||||
|
@ -103,7 +103,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, named("org.apache.http.client.methods.HttpUriRequest")))
|
||||
.and(takesArgument(1, named("org.apache.http.client.ResponseHandler")))
|
||||
.and(takesArgument(2, named("org.apache.http.protocol.HttpContext"))),
|
||||
UriRequestWithHandlerAdvice.class.getName());
|
||||
ApacheHttpClientInstrumentation.class.getName() + "$UriRequestWithHandlerAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod()
|
||||
|
@ -112,7 +112,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArguments(2))
|
||||
.and(takesArgument(0, named("org.apache.http.HttpHost")))
|
||||
.and(takesArgument(1, named("org.apache.http.HttpRequest"))),
|
||||
RequestAdvice.class.getName());
|
||||
ApacheHttpClientInstrumentation.class.getName() + "$RequestAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod()
|
||||
|
@ -122,7 +122,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, named("org.apache.http.HttpHost")))
|
||||
.and(takesArgument(1, named("org.apache.http.HttpRequest")))
|
||||
.and(takesArgument(2, named("org.apache.http.protocol.HttpContext"))),
|
||||
RequestAdvice.class.getName());
|
||||
ApacheHttpClientInstrumentation.class.getName() + "$RequestAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod()
|
||||
|
@ -132,7 +132,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, named("org.apache.http.HttpHost")))
|
||||
.and(takesArgument(1, named("org.apache.http.HttpRequest")))
|
||||
.and(takesArgument(2, named("org.apache.http.client.ResponseHandler"))),
|
||||
RequestWithHandlerAdvice.class.getName());
|
||||
ApacheHttpClientInstrumentation.class.getName() + "$RequestWithHandlerAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod()
|
||||
|
@ -143,7 +143,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(1, named("org.apache.http.HttpRequest")))
|
||||
.and(takesArgument(2, named("org.apache.http.client.ResponseHandler")))
|
||||
.and(takesArgument(3, named("org.apache.http.protocol.HttpContext"))),
|
||||
RequestWithHandlerAdvice.class.getName());
|
||||
ApacheHttpClientInstrumentation.class.getName() + "$RequestWithHandlerAdvice");
|
||||
|
||||
return transformers;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,8 @@ public final class AWSClientInstrumentation extends Instrumenter.Default {
|
|||
|
||||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(isConstructor(), AWSClientAdvice.class.getName());
|
||||
return singletonMap(
|
||||
isConstructor(), AWSClientInstrumentation.class.getName() + "$AWSClientAdvice");
|
||||
}
|
||||
|
||||
public static class AWSClientAdvice {
|
||||
|
|
|
@ -51,7 +51,7 @@ public class AWSHttpClientInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(not(isAbstract())).and(named("doExecute")),
|
||||
HttpClientAdvice.class.getName());
|
||||
AWSHttpClientInstrumentation.class.getName() + "$HttpClientAdvice");
|
||||
}
|
||||
|
||||
public static class HttpClientAdvice {
|
||||
|
@ -87,7 +87,7 @@ public class AWSHttpClientInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(not(isAbstract())).and(named("doExecute")),
|
||||
RequestExecutorAdvice.class.getName());
|
||||
RequestExecutorInstrumentation.class.getName() + "$RequestExecutorAdvice");
|
||||
}
|
||||
|
||||
public static class RequestExecutorAdvice {
|
||||
|
|
|
@ -30,7 +30,8 @@ public final class AwsClientInstrumentation extends AbstractAwsClientInstrumenta
|
|||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(named("build")), AwsBuilderAdvice.class.getName());
|
||||
isMethod().and(isPublic()).and(named("build")),
|
||||
AwsClientInstrumentation.class.getName() + "$AwsBuilderAdvice");
|
||||
}
|
||||
|
||||
public static class AwsBuilderAdvice {
|
||||
|
|
|
@ -39,7 +39,8 @@ public final class AwsHttpClientInstrumentation extends AbstractAwsClientInstrum
|
|||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return Collections.singletonMap(
|
||||
isMethod().and(isPublic()).and(named("execute")), AwsHttpClientAdvice.class.getName());
|
||||
isMethod().and(isPublic()).and(named("execute")),
|
||||
AwsHttpClientInstrumentation.class.getName() + "$AwsHttpClientAdvice");
|
||||
}
|
||||
|
||||
public static class AwsHttpClientAdvice {
|
||||
|
|
|
@ -54,7 +54,7 @@ public class CouchbaseBucketInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(returns(named("rx.Observable"))),
|
||||
CouchbaseClientAdvice.class.getName());
|
||||
CouchbaseBucketInstrumentation.class.getName() + "$CouchbaseClientAdvice");
|
||||
}
|
||||
|
||||
public static class CouchbaseClientAdvice {
|
||||
|
|
|
@ -54,7 +54,7 @@ public class CouchbaseClusterInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(returns(named("rx.Observable"))).and(not(named("core"))),
|
||||
CouchbaseClientAdvice.class.getName());
|
||||
CouchbaseClusterInstrumentation.class.getName() + "$CouchbaseClientAdvice");
|
||||
}
|
||||
|
||||
public static class CouchbaseClientAdvice {
|
||||
|
|
|
@ -47,7 +47,7 @@ public class CouchbaseCoreInstrumentation extends Instrumenter.Default {
|
|||
.and(isPublic())
|
||||
.and(takesArgument(0, named("com.couchbase.client.core.message.CouchbaseRequest")))
|
||||
.and(named("send")),
|
||||
CouchbaseCoreAdvice.class.getName());
|
||||
CouchbaseCoreInstrumentation.class.getName() + "$CouchbaseCoreAdvice");
|
||||
}
|
||||
|
||||
public static class CouchbaseCoreAdvice {
|
||||
|
|
|
@ -51,7 +51,7 @@ public class CouchbaseNetworkInstrumentation extends Instrumenter.Default {
|
|||
takesArgument(
|
||||
0, named("com.couchbase.client.deps.io.netty.channel.ChannelHandlerContext")))
|
||||
.and(takesArgument(2, named("java.util.List"))),
|
||||
CouchbaseNetworkAdvice.class.getName());
|
||||
CouchbaseNetworkInstrumentation.class.getName() + "$CouchbaseNetworkAdvice");
|
||||
}
|
||||
|
||||
public static class CouchbaseNetworkAdvice {
|
||||
|
|
|
@ -44,7 +44,7 @@ public class CassandraClientInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPrivate()).and(named("newSession")).and(takesArguments(0)),
|
||||
CassandraClientAdvice.class.getName());
|
||||
CassandraClientInstrumentation.class.getName() + "$CassandraClientAdvice");
|
||||
}
|
||||
|
||||
public static class CassandraClientAdvice {
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class DropwizardViewInstrumentation extends Instrumenter.Default {
|
|||
.and(named("render"))
|
||||
.and(takesArgument(0, named("io.dropwizard.views.View")))
|
||||
.and(isPublic()),
|
||||
RenderAdvice.class.getName());
|
||||
DropwizardViewInstrumentation.class.getName() + "$RenderAdvice");
|
||||
}
|
||||
|
||||
public static class RenderAdvice {
|
||||
|
|
|
@ -54,7 +54,7 @@ public class Elasticsearch5RestClientInstrumentation extends Instrumenter.Defaul
|
|||
.and(takesArgument(0, named("java.lang.String"))) // method
|
||||
.and(takesArgument(1, named("java.lang.String"))) // endpoint
|
||||
.and(takesArgument(5, named("org.elasticsearch.client.ResponseListener"))),
|
||||
ElasticsearchRestClientAdvice.class.getName());
|
||||
Elasticsearch5RestClientInstrumentation.class.getName() + "$ElasticsearchRestClientAdvice");
|
||||
}
|
||||
|
||||
public static class ElasticsearchRestClientAdvice {
|
||||
|
|
|
@ -54,7 +54,7 @@ public class Elasticsearch6RestClientInstrumentation extends Instrumenter.Defaul
|
|||
.and(takesArguments(2))
|
||||
.and(takesArgument(0, named("org.elasticsearch.client.Request")))
|
||||
.and(takesArgument(1, named("org.elasticsearch.client.ResponseListener"))),
|
||||
ElasticsearchRestClientAdvice.class.getName());
|
||||
Elasticsearch6RestClientInstrumentation.class.getName() + "$ElasticsearchRestClientAdvice");
|
||||
}
|
||||
|
||||
public static class ElasticsearchRestClientAdvice {
|
||||
|
|
|
@ -62,7 +62,8 @@ public class Elasticsearch2TransportClientInstrumentation extends Instrumenter.D
|
|||
.and(takesArgument(0, named("org.elasticsearch.action.Action")))
|
||||
.and(takesArgument(1, named("org.elasticsearch.action.ActionRequest")))
|
||||
.and(takesArgument(2, named("org.elasticsearch.action.ActionListener"))),
|
||||
ElasticsearchTransportClientAdvice.class.getName());
|
||||
Elasticsearch2TransportClientInstrumentation.class.getName()
|
||||
+ "$ElasticsearchTransportClientAdvice");
|
||||
}
|
||||
|
||||
public static class ElasticsearchTransportClientAdvice {
|
||||
|
|
|
@ -63,7 +63,8 @@ public class Elasticsearch53TransportClientInstrumentation extends Instrumenter.
|
|||
.and(takesArgument(0, named("org.elasticsearch.action.Action")))
|
||||
.and(takesArgument(1, named("org.elasticsearch.action.ActionRequest")))
|
||||
.and(takesArgument(2, named("org.elasticsearch.action.ActionListener"))),
|
||||
ElasticsearchTransportClientAdvice.class.getName());
|
||||
Elasticsearch53TransportClientInstrumentation.class.getName()
|
||||
+ "$ElasticsearchTransportClientAdvice");
|
||||
}
|
||||
|
||||
public static class ElasticsearchTransportClientAdvice {
|
||||
|
|
|
@ -62,7 +62,8 @@ public class Elasticsearch5TransportClientInstrumentation extends Instrumenter.D
|
|||
.and(takesArgument(0, named("org.elasticsearch.action.Action")))
|
||||
.and(takesArgument(1, named("org.elasticsearch.action.ActionRequest")))
|
||||
.and(takesArgument(2, named("org.elasticsearch.action.ActionListener"))),
|
||||
ElasticsearchTransportClientAdvice.class.getName());
|
||||
Elasticsearch5TransportClientInstrumentation.class.getName()
|
||||
+ "$ElasticsearchTransportClientAdvice");
|
||||
}
|
||||
|
||||
public static class ElasticsearchTransportClientAdvice {
|
||||
|
|
|
@ -66,7 +66,8 @@ public class Elasticsearch6TransportClientInstrumentation extends Instrumenter.D
|
|||
.and(takesArgument(0, named("org.elasticsearch.action.Action")))
|
||||
.and(takesArgument(1, named("org.elasticsearch.action.ActionRequest")))
|
||||
.and(takesArgument(2, named("org.elasticsearch.action.ActionListener"))),
|
||||
Elasticsearch6TransportClientAdvice.class.getName());
|
||||
Elasticsearch6TransportClientInstrumentation.class.getName()
|
||||
+ "$Elasticsearch6TransportClientAdvice");
|
||||
}
|
||||
|
||||
public static class Elasticsearch6TransportClientAdvice {
|
||||
|
|
|
@ -47,7 +47,7 @@ public final class GlassFishInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(named("addToBlackList")).and(takesArguments(1)),
|
||||
AvoidGlassFishBlacklistAdvice.class.getName());
|
||||
GlassFishInstrumentation.class.getName() + "$AvoidGlassFishBlacklistAdvice");
|
||||
}
|
||||
|
||||
public static class AvoidGlassFishBlacklistAdvice {
|
||||
|
|
|
@ -64,7 +64,7 @@ public class GoogleHttpClientInstrumentation extends Instrumenter.Default {
|
|||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
isMethod().and(isPublic()).and(named("execute")).and(takesArguments(0)),
|
||||
GoogleHttpClientAdvice.class.getName());
|
||||
GoogleHttpClientInstrumentation.class.getName() + "$GoogleHttpClientAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod()
|
||||
|
@ -72,7 +72,7 @@ public class GoogleHttpClientInstrumentation extends Instrumenter.Default {
|
|||
.and(named("executeAsync"))
|
||||
.and(takesArguments(1))
|
||||
.and(takesArgument(0, (named("java.util.concurrent.Executor")))),
|
||||
GoogleHttpClientAsyncAdvice.class.getName());
|
||||
GoogleHttpClientInstrumentation.class.getName() + "$GoogleHttpClientAsyncAdvice");
|
||||
|
||||
return transformers;
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ public class GrizzlyHttpHandlerInstrumentation extends Instrumenter.Default {
|
|||
.and(named("doHandle"))
|
||||
.and(takesArgument(0, named("org.glassfish.grizzly.http.server.Request")))
|
||||
.and(takesArgument(1, named("org.glassfish.grizzly.http.server.Response"))),
|
||||
HandleAdvice.class.getName());
|
||||
GrizzlyHttpHandlerInstrumentation.class.getName() + "$HandleAdvice");
|
||||
}
|
||||
|
||||
public static class HandleAdvice {
|
||||
|
|
|
@ -41,7 +41,9 @@ public class GrpcClientBuilderInstrumentation extends Instrumenter.Default {
|
|||
|
||||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(isMethod().and(named("build")), AddInterceptorAdvice.class.getName());
|
||||
return singletonMap(
|
||||
isMethod().and(named("build")),
|
||||
GrpcClientBuilderInstrumentation.class.getName() + "$AddInterceptorAdvice");
|
||||
}
|
||||
|
||||
public static class AddInterceptorAdvice {
|
||||
|
|
|
@ -41,7 +41,9 @@ public class GrpcServerBuilderInstrumentation extends Instrumenter.Default {
|
|||
|
||||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(isMethod().and(named("build")), AddInterceptorAdvice.class.getName());
|
||||
return singletonMap(
|
||||
isMethod().and(named("build")),
|
||||
GrpcServerBuilderInstrumentation.class.getName() + "$AddInterceptorAdvice");
|
||||
}
|
||||
|
||||
public static class AddInterceptorAdvice {
|
||||
|
|
|
@ -38,7 +38,7 @@ public class CriteriaInstrumentation extends AbstractHibernateInstrumentation {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(named("list").or(named("uniqueResult")).or(named("scroll"))),
|
||||
CriteriaMethodAdvice.class.getName());
|
||||
CriteriaInstrumentation.class.getName() + "$CriteriaMethodAdvice");
|
||||
}
|
||||
|
||||
public static class CriteriaMethodAdvice extends V3Advice {
|
||||
|
|
|
@ -45,7 +45,7 @@ public class QueryInstrumentation extends AbstractHibernateInstrumentation {
|
|||
.or(named("executeUpdate"))
|
||||
.or(named("uniqueResult"))
|
||||
.or(named("scroll"))),
|
||||
QueryMethodAdvice.class.getName());
|
||||
QueryInstrumentation.class.getName() + "$QueryMethodAdvice");
|
||||
}
|
||||
|
||||
public static class QueryMethodAdvice extends V3Advice {
|
||||
|
|
|
@ -54,7 +54,7 @@ public class SessionFactoryInstrumentation extends AbstractHibernateInstrumentat
|
|||
named("org.hibernate.Session")
|
||||
.or(named("org.hibernate.StatelessSession"))
|
||||
.or(safeHasSuperType(named("org.hibernate.Session"))))),
|
||||
SessionFactoryAdvice.class.getName());
|
||||
SessionFactoryInstrumentation.class.getName() + "$SessionFactoryAdvice");
|
||||
}
|
||||
|
||||
public static class SessionFactoryAdvice extends V3Advice {
|
||||
|
|
|
@ -58,7 +58,8 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
isMethod().and(named("close")).and(takesArguments(0)), SessionCloseAdvice.class.getName());
|
||||
isMethod().and(named("close")).and(takesArguments(0)),
|
||||
SessionInstrumentation.class.getName() + "$SessionCloseAdvice");
|
||||
|
||||
// Session synchronous methods we want to instrument.
|
||||
transformers.put(
|
||||
|
@ -79,14 +80,15 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation {
|
|||
// Lazy-load methods.
|
||||
.or(named("immediateLoad"))
|
||||
.or(named("internalLoad"))),
|
||||
SessionMethodAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$SessionMethodAdvice");
|
||||
|
||||
// Handle the non-generic 'get' separately.
|
||||
transformers.put(
|
||||
isMethod()
|
||||
.and(named("get"))
|
||||
.and(returns(named("java.lang.Object")))
|
||||
.and(takesArgument(0, named("java.lang.String"))),
|
||||
SessionMethodAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$SessionMethodAdvice");
|
||||
|
||||
// These methods return some object that we want to instrument, and so the Advice will pin the
|
||||
// current Span to the returned object using a ContextStore.
|
||||
|
@ -94,15 +96,15 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation {
|
|||
isMethod()
|
||||
.and(named("beginTransaction").or(named("getTransaction")))
|
||||
.and(returns(named("org.hibernate.Transaction"))),
|
||||
GetTransactionAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$GetTransactionAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod().and(returns(safeHasSuperType(named("org.hibernate.Query")))),
|
||||
GetQueryAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$GetQueryAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod().and(returns(safeHasSuperType(named("org.hibernate.Criteria")))),
|
||||
GetCriteriaAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$GetCriteriaAdvice");
|
||||
|
||||
return transformers;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public class TransactionInstrumentation extends AbstractHibernateInstrumentation
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(named("commit")).and(takesArguments(0)),
|
||||
TransactionCommitAdvice.class.getName());
|
||||
TransactionInstrumentation.class.getName() + "$TransactionCommitAdvice");
|
||||
}
|
||||
|
||||
public static class TransactionCommitAdvice extends V3Advice {
|
||||
|
|
|
@ -38,7 +38,7 @@ public class CriteriaInstrumentation extends AbstractHibernateInstrumentation {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(named("list").or(named("uniqueResult")).or(named("scroll"))),
|
||||
CriteriaMethodAdvice.class.getName());
|
||||
CriteriaInstrumentation.class.getName() + "$CriteriaMethodAdvice");
|
||||
}
|
||||
|
||||
public static class CriteriaMethodAdvice extends V4Advice {
|
||||
|
|
|
@ -45,7 +45,7 @@ public class QueryInstrumentation extends AbstractHibernateInstrumentation {
|
|||
.or(named("executeUpdate"))
|
||||
.or(named("uniqueResult"))
|
||||
.or(named("scroll"))),
|
||||
QueryMethodAdvice.class.getName());
|
||||
QueryInstrumentation.class.getName() + "$QueryMethodAdvice");
|
||||
}
|
||||
|
||||
public static class QueryMethodAdvice extends V4Advice {
|
||||
|
|
|
@ -46,7 +46,7 @@ public class SessionFactoryInstrumentation extends AbstractHibernateInstrumentat
|
|||
.and(
|
||||
returns(
|
||||
named("org.hibernate.Session").or(named("org.hibernate.StatelessSession")))),
|
||||
SessionFactoryAdvice.class.getName());
|
||||
SessionFactoryInstrumentation.class.getName() + "$SessionFactoryAdvice");
|
||||
}
|
||||
|
||||
public static class SessionFactoryAdvice extends V4Advice {
|
||||
|
|
|
@ -53,7 +53,8 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
isMethod().and(named("close")).and(takesArguments(0)), SessionCloseAdvice.class.getName());
|
||||
isMethod().and(named("close")).and(takesArguments(0)),
|
||||
SessionInstrumentation.class.getName() + "$SessionCloseAdvice");
|
||||
|
||||
// Session synchronous methods we want to instrument.
|
||||
transformers.put(
|
||||
|
@ -74,14 +75,14 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation {
|
|||
// Lazy-load methods.
|
||||
.or(named("immediateLoad"))
|
||||
.or(named("internalLoad"))),
|
||||
SessionMethodAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$SessionMethodAdvice");
|
||||
// Handle the non-generic 'get' separately.
|
||||
transformers.put(
|
||||
isMethod()
|
||||
.and(named("get"))
|
||||
.and(returns(named("java.lang.Object")))
|
||||
.and(takesArgument(0, named("java.lang.String"))),
|
||||
SessionMethodAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$SessionMethodAdvice");
|
||||
|
||||
// These methods return some object that we want to instrument, and so the Advice will pin the
|
||||
// current Span to the returned object using a ContextStore.
|
||||
|
@ -89,15 +90,15 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation {
|
|||
isMethod()
|
||||
.and(named("beginTransaction").or(named("getTransaction")))
|
||||
.and(returns(named("org.hibernate.Transaction"))),
|
||||
GetTransactionAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$GetTransactionAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod().and(returns(safeHasSuperType(named("org.hibernate.Query")))),
|
||||
GetQueryAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$GetQueryAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod().and(returns(safeHasSuperType(named("org.hibernate.Criteria")))),
|
||||
GetCriteriaAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$GetCriteriaAdvice");
|
||||
|
||||
return transformers;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public class TransactionInstrumentation extends AbstractHibernateInstrumentation
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(named("commit")).and(takesArguments(0)),
|
||||
TransactionCommitAdvice.class.getName());
|
||||
TransactionInstrumentation.class.getName() + "$TransactionCommitAdvice");
|
||||
}
|
||||
|
||||
public static class TransactionCommitAdvice extends V4Advice {
|
||||
|
|
|
@ -53,7 +53,8 @@ public class ProcedureCallInstrumentation extends Instrumenter.Default {
|
|||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(named("getOutputs")), ProcedureCallMethodAdvice.class.getName());
|
||||
isMethod().and(named("getOutputs")),
|
||||
ProcedureCallInstrumentation.class.getName() + "$ProcedureCallMethodAdvice");
|
||||
}
|
||||
|
||||
public static class ProcedureCallMethodAdvice {
|
||||
|
|
|
@ -62,7 +62,7 @@ public class SessionInstrumentation extends Instrumenter.Default {
|
|||
|
||||
transformers.put(
|
||||
isMethod().and(returns(safeHasSuperType(named("org.hibernate.procedure.ProcedureCall")))),
|
||||
GetProcedureCallAdvice.class.getName());
|
||||
SessionInstrumentation.class.getName() + "$GetProcedureCallAdvice");
|
||||
|
||||
return transformers;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ public class HttpUrlConnectionInstrumentation extends Instrumenter.Default {
|
|||
isMethod()
|
||||
.and(isPublic())
|
||||
.and(named("connect").or(named("getOutputStream")).or(named("getInputStream"))),
|
||||
HttpUrlConnectionAdvice.class.getName());
|
||||
HttpUrlConnectionInstrumentation.class.getName() + "$HttpUrlConnectionAdvice");
|
||||
}
|
||||
|
||||
public static class HttpUrlConnectionAdvice {
|
||||
|
|
|
@ -3,10 +3,7 @@ package datadog.trace.instrumentation.http_url_connection;
|
|||
import static datadog.trace.instrumentation.api.AgentTracer.activateSpan;
|
||||
import static datadog.trace.instrumentation.api.AgentTracer.startSpan;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.is;
|
||||
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.*;
|
||||
|
||||
import com.google.auto.service.AutoService;
|
||||
import datadog.trace.agent.tooling.Instrumenter;
|
||||
|
@ -43,7 +40,7 @@ public class UrlInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(named("openConnection")),
|
||||
ConnectionErrorAdvice.class.getName());
|
||||
UrlInstrumentation.class.getName() + "$ConnectionErrorAdvice");
|
||||
}
|
||||
|
||||
public static class ConnectionErrorAdvice {
|
||||
|
|
|
@ -52,10 +52,10 @@ public class HystrixInstrumentation extends Instrumenter.Default {
|
|||
final Map<ElementMatcher.Junction<MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("getExecutionObservable").and(returns(named("rx.Observable"))),
|
||||
ExecuteAdvice.class.getName());
|
||||
HystrixInstrumentation.class.getName() + "$ExecuteAdvice");
|
||||
transformers.put(
|
||||
named("getFallbackObservable").and(returns(named("rx.Observable"))),
|
||||
FallbackAdvice.class.getName());
|
||||
HystrixInstrumentation.class.getName() + "$FallbackAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ public class HystrixThreadPoolInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(named("schedule")).and(takesArguments(1)),
|
||||
EnableAsyncAdvice.class.getName());
|
||||
HystrixThreadPoolInstrumentation.class.getName() + "$EnableAsyncAdvice");
|
||||
}
|
||||
|
||||
public static class EnableAsyncAdvice {
|
||||
|
|
|
@ -41,15 +41,15 @@ public final class AkkaExecutorInstrumentation extends AbstractExecutorInstrumen
|
|||
transformers.put(
|
||||
named("execute")
|
||||
.and(takesArgument(0, named(AkkaForkJoinTaskInstrumentation.TASK_CLASS_NAME))),
|
||||
SetAkkaForkJoinStateAdvice.class.getName());
|
||||
AkkaExecutorInstrumentation.class.getName() + "$SetAkkaForkJoinStateAdvice");
|
||||
transformers.put(
|
||||
named("submit")
|
||||
.and(takesArgument(0, named(AkkaForkJoinTaskInstrumentation.TASK_CLASS_NAME))),
|
||||
SetAkkaForkJoinStateAdvice.class.getName());
|
||||
AkkaExecutorInstrumentation.class.getName() + "$SetAkkaForkJoinStateAdvice");
|
||||
transformers.put(
|
||||
nameMatches("invoke")
|
||||
.and(takesArgument(0, named(AkkaForkJoinTaskInstrumentation.TASK_CLASS_NAME))),
|
||||
SetAkkaForkJoinStateAdvice.class.getName());
|
||||
AkkaExecutorInstrumentation.class.getName() + "$SetAkkaForkJoinStateAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ public final class AkkaForkJoinTaskInstrumentation extends Instrumenter.Default
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
named("exec").and(takesArguments(0)).and(not(isAbstract())),
|
||||
ForkJoinTaskAdvice.class.getName());
|
||||
AkkaForkJoinTaskInstrumentation.class.getName() + "$ForkJoinTaskAdvice");
|
||||
}
|
||||
|
||||
public static class ForkJoinTaskAdvice {
|
||||
|
|
|
@ -78,7 +78,9 @@ public final class AsyncPropagatingDisableInstrumentation implements Instrumente
|
|||
|
||||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(methodMatcher, DisableAsyncAdvice.class.getName());
|
||||
return singletonMap(
|
||||
methodMatcher,
|
||||
AsyncPropagatingDisableInstrumentation.class.getName() + "$DisableAsyncAdvice");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -103,7 +103,8 @@ public final class FutureInstrumentation extends Instrumenter.Default {
|
|||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
named("cancel").and(returns(boolean.class)), CanceledFutureAdvice.class.getName());
|
||||
named("cancel").and(returns(boolean.class)),
|
||||
FutureInstrumentation.class.getName() + "$CanceledFutureAdvice");
|
||||
}
|
||||
|
||||
public static class CanceledFutureAdvice {
|
||||
|
|
|
@ -44,31 +44,32 @@ public final class JavaExecutorInstrumentation extends AbstractExecutorInstrumen
|
|||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("execute").and(takesArgument(0, Runnable.class)),
|
||||
SetExecuteRunnableStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetExecuteRunnableStateAdvice");
|
||||
transformers.put(
|
||||
named("execute").and(takesArgument(0, ForkJoinTask.class)),
|
||||
SetJavaForkJoinStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetJavaForkJoinStateAdvice");
|
||||
transformers.put(
|
||||
named("submit").and(takesArgument(0, Runnable.class)),
|
||||
SetSubmitRunnableStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetSubmitRunnableStateAdvice");
|
||||
transformers.put(
|
||||
named("submit").and(takesArgument(0, Callable.class)),
|
||||
SetCallableStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetCallableStateAdvice");
|
||||
transformers.put(
|
||||
named("submit").and(takesArgument(0, ForkJoinTask.class)),
|
||||
SetJavaForkJoinStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetJavaForkJoinStateAdvice");
|
||||
transformers.put(
|
||||
nameMatches("invoke(Any|All)$").and(takesArgument(0, Collection.class)),
|
||||
SetCallableStateForCallableCollectionAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName()
|
||||
+ "$SetCallableStateForCallableCollectionAdvice");
|
||||
transformers.put(
|
||||
nameMatches("invoke").and(takesArgument(0, ForkJoinTask.class)),
|
||||
SetJavaForkJoinStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetJavaForkJoinStateAdvice");
|
||||
transformers.put(
|
||||
named("schedule").and(takesArgument(0, Runnable.class)),
|
||||
SetSubmitRunnableStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetSubmitRunnableStateAdvice");
|
||||
transformers.put(
|
||||
named("schedule").and(takesArgument(0, Callable.class)),
|
||||
SetCallableStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetCallableStateAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ public final class JavaForkJoinTaskInstrumentation extends Instrumenter.Default
|
|||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("exec").and(takesArguments(0)).and(not(isAbstract())),
|
||||
ForkJoinTaskAdvice.class.getName());
|
||||
JavaForkJoinTaskInstrumentation.class.getName() + "$ForkJoinTaskAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,10 +32,11 @@ public final class NonStandardExecutorInstrumentation extends AbstractExecutorIn
|
|||
named("dispatch")
|
||||
.and(takesArgument(0, Runnable.class))
|
||||
.and(takesArgument(1, named("kotlinx.coroutines.scheduling.TaskContext"))),
|
||||
JavaExecutorInstrumentation.SetExecuteRunnableStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetExecuteRunnableStateAdvice");
|
||||
|
||||
transformers.put( // org.eclipse.jetty.util.thread.QueuedThreadPool
|
||||
named("dispatch").and(takesArguments(1)).and(takesArgument(0, Runnable.class)),
|
||||
JavaExecutorInstrumentation.SetExecuteRunnableStateAdvice.class.getName());
|
||||
JavaExecutorInstrumentation.class.getName() + "$SetExecuteRunnableStateAdvice");
|
||||
return transformers;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,9 +57,11 @@ public final class RunnableCallableInstrumentation extends Instrumenter.Default
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("run").and(takesArguments(0)).and(isPublic()), RunnableAdvice.class.getName());
|
||||
named("run").and(takesArguments(0)).and(isPublic()),
|
||||
RunnableCallableInstrumentation.class.getName() + "$RunnableAdvice");
|
||||
transformers.put(
|
||||
named("call").and(takesArguments(0)).and(isPublic()), CallableAdvice.class.getName());
|
||||
named("call").and(takesArguments(0)).and(isPublic()),
|
||||
RunnableCallableInstrumentation.class.getName() + "$CallableAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -41,15 +41,15 @@ public final class ScalaExecutorInstrumentation extends AbstractExecutorInstrume
|
|||
transformers.put(
|
||||
named("execute")
|
||||
.and(takesArgument(0, named(ScalaForkJoinTaskInstrumentation.TASK_CLASS_NAME))),
|
||||
SetScalaForkJoinStateAdvice.class.getName());
|
||||
ScalaExecutorInstrumentation.class.getName() + "$SetScalaForkJoinStateAdvice");
|
||||
transformers.put(
|
||||
named("submit")
|
||||
.and(takesArgument(0, named(ScalaForkJoinTaskInstrumentation.TASK_CLASS_NAME))),
|
||||
SetScalaForkJoinStateAdvice.class.getName());
|
||||
ScalaExecutorInstrumentation.class.getName() + "$SetScalaForkJoinStateAdvice");
|
||||
transformers.put(
|
||||
nameMatches("invoke")
|
||||
.and(takesArgument(0, named(ScalaForkJoinTaskInstrumentation.TASK_CLASS_NAME))),
|
||||
SetScalaForkJoinStateAdvice.class.getName());
|
||||
ScalaExecutorInstrumentation.class.getName() + "$SetScalaForkJoinStateAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ public final class ScalaForkJoinTaskInstrumentation extends Instrumenter.Default
|
|||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("exec").and(takesArguments(0)).and(not(isAbstract())),
|
||||
ForkJoinTaskAdvice.class.getName());
|
||||
ScalaForkJoinTaskInstrumentation.class.getName() + "$ForkJoinTaskAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ public class ThreadPoolExecutorInstrumentation extends Instrumenter.Default {
|
|||
isConstructor()
|
||||
.and(takesArgument(4, named("java.util.concurrent.BlockingQueue")))
|
||||
.and(takesArguments(7)),
|
||||
ThreadPoolExecutorAdvice.class.getName());
|
||||
ThreadPoolExecutorInstrumentation.class.getName() + "$ThreadPoolExecutorAdvice");
|
||||
}
|
||||
|
||||
public static class ThreadPoolExecutorAdvice {
|
||||
|
|
|
@ -63,7 +63,7 @@ public final class JaxRsAnnotationsInstrumentation extends Instrumenter.Default
|
|||
.or(named("javax.ws.rs.OPTIONS"))
|
||||
.or(named("javax.ws.rs.POST"))
|
||||
.or(named("javax.ws.rs.PUT"))),
|
||||
JaxRsAnnotationsAdvice.class.getName());
|
||||
JaxRsAnnotationsInstrumentation.class.getName() + "$JaxRsAnnotationsAdvice");
|
||||
}
|
||||
|
||||
public static class JaxRsAnnotationsAdvice {
|
||||
|
|
|
@ -62,7 +62,7 @@ public final class JaxRsAnnotationsInstrumentation extends Instrumenter.Default
|
|||
.or(named("javax.ws.rs.OPTIONS"))
|
||||
.or(named("javax.ws.rs.POST"))
|
||||
.or(named("javax.ws.rs.PUT"))),
|
||||
JaxRsAnnotationsAdvice.class.getName());
|
||||
JaxRsAnnotationsInstrumentation.class.getName() + "$JaxRsAnnotationsAdvice");
|
||||
}
|
||||
|
||||
public static class JaxRsAnnotationsAdvice {
|
||||
|
|
|
@ -50,11 +50,13 @@ public final class JaxRsAsyncResponseInstrumentation extends Instrumenter.Defaul
|
|||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("resume").and(takesArgument(0, Object.class)).and(isPublic()),
|
||||
AsyncResponseAdvice.class.getName());
|
||||
JaxRsAsyncResponseInstrumentation.class.getName() + "$AsyncResponseAdvice");
|
||||
transformers.put(
|
||||
named("resume").and(takesArgument(0, Throwable.class)).and(isPublic()),
|
||||
AsyncResponseThrowableAdvice.class.getName());
|
||||
transformers.put(named("cancel"), AsyncResponseCancelAdvice.class.getName());
|
||||
JaxRsAsyncResponseInstrumentation.class.getName() + "$AsyncResponseThrowableAdvice");
|
||||
transformers.put(
|
||||
named("cancel"),
|
||||
JaxRsAsyncResponseInstrumentation.class.getName() + "$AsyncResponseCancelAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ public final class JaxRsClientV1Instrumentation extends Instrumenter.Default {
|
|||
takesArgument(
|
||||
0, safeHasSuperType(named("com.sun.jersey.api.client.ClientRequest"))))
|
||||
.and(returns(safeHasSuperType(named("com.sun.jersey.api.client.ClientResponse")))),
|
||||
HandleAdvice.class.getName());
|
||||
JaxRsClientV1Instrumentation.class.getName() + "$HandleAdvice");
|
||||
}
|
||||
|
||||
public static class HandleAdvice {
|
||||
|
|
|
@ -47,10 +47,15 @@ public final class JerseyClientConnectionErrorInstrumentation extends Instrument
|
|||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(isMethod().and(isPublic()).and(named("invoke")), InvokeAdvice.class.getName());
|
||||
|
||||
transformers.put(
|
||||
isMethod().and(isPublic()).and(named("invoke")),
|
||||
JerseyClientConnectionErrorInstrumentation.class.getName() + "$InvokeAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod().and(isPublic()).and(named("submit")).and(returns(Future.class)),
|
||||
SubmitAdvice.class.getName());
|
||||
JerseyClientConnectionErrorInstrumentation.class.getName() + "$SubmitAdvice");
|
||||
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,10 +47,15 @@ public final class ResteasyClientConnectionErrorInstrumentation extends Instrume
|
|||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(isMethod().and(isPublic()).and(named("invoke")), InvokeAdvice.class.getName());
|
||||
|
||||
transformers.put(
|
||||
isMethod().and(isPublic()).and(named("invoke")),
|
||||
ResteasyClientConnectionErrorInstrumentation.class.getName() + "$InvokeAdvice");
|
||||
|
||||
transformers.put(
|
||||
isMethod().and(isPublic()).and(named("submit")).and(returns(Future.class)),
|
||||
SubmitAdvice.class.getName());
|
||||
ResteasyClientConnectionErrorInstrumentation.class.getName() + "$SubmitAdvice");
|
||||
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class JaxRsClientInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
named("build").and(returns(safeHasSuperType(named("javax.ws.rs.client.Client")))),
|
||||
ClientBuilderAdvice.class.getName());
|
||||
JaxRsClientInstrumentation.class.getName() + "$ClientBuilderAdvice");
|
||||
}
|
||||
|
||||
public static class ClientBuilderAdvice {
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class ConnectionInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, String.class))
|
||||
// Also include CallableStatement, which is a sub type of PreparedStatement
|
||||
.and(returns(safeHasSuperType(named("java.sql.PreparedStatement")))),
|
||||
ConnectionPrepareAdvice.class.getName());
|
||||
ConnectionInstrumentation.class.getName() + "$ConnectionPrepareAdvice");
|
||||
}
|
||||
|
||||
public static class ConnectionPrepareAdvice {
|
||||
|
|
|
@ -55,7 +55,7 @@ public final class DriverInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, String.class))
|
||||
.and(takesArgument(1, Properties.class))
|
||||
.and(returns(named("java.sql.Connection"))),
|
||||
DriverAdvice.class.getName());
|
||||
DriverInstrumentation.class.getName() + "$DriverAdvice");
|
||||
}
|
||||
|
||||
public static class DriverAdvice {
|
||||
|
|
|
@ -65,7 +65,7 @@ public final class PreparedStatementInstrumentation extends Instrumenter.Default
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
nameStartsWith("execute").and(takesArguments(0)).and(isPublic()),
|
||||
PreparedStatementAdvice.class.getName());
|
||||
PreparedStatementInstrumentation.class.getName() + "$PreparedStatementAdvice");
|
||||
}
|
||||
|
||||
public static class PreparedStatementAdvice {
|
||||
|
|
|
@ -65,7 +65,7 @@ public final class StatementInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
nameStartsWith("execute").and(takesArgument(0, String.class)).and(isPublic()),
|
||||
StatementAdvice.class.getName());
|
||||
StatementInstrumentation.class.getName() + "$StatementAdvice");
|
||||
}
|
||||
|
||||
public static class StatementAdvice {
|
||||
|
|
|
@ -52,7 +52,7 @@ public final class JedisInstrumentation extends Instrumenter.Default {
|
|||
.and(isPublic())
|
||||
.and(named("sendCommand"))
|
||||
.and(takesArgument(1, named("redis.clients.jedis.Protocol$Command"))),
|
||||
JedisAdvice.class.getName());
|
||||
JedisInstrumentation.class.getName() + "$JedisAdvice");
|
||||
// FIXME: This instrumentation only incorporates sending the command, not processing the result.
|
||||
}
|
||||
|
||||
|
|
|
@ -55,6 +55,6 @@ public final class JettyHandlerInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(2, named("javax.servlet.http.HttpServletRequest")))
|
||||
.and(takesArgument(3, named("javax.servlet.http.HttpServletResponse")))
|
||||
.and(isPublic()),
|
||||
JettyHandlerAdvice.class.getName());
|
||||
packageName + ".JettyHandlerAdvice");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,10 +58,10 @@ public final class JMSMessageConsumerInstrumentation extends Instrumenter.Defaul
|
|||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("receive").and(takesArguments(0).or(takesArguments(1))).and(isPublic()),
|
||||
ConsumerAdvice.class.getName());
|
||||
JMSMessageConsumerInstrumentation.class.getName() + "$ConsumerAdvice");
|
||||
transformers.put(
|
||||
named("receiveNoWait").and(takesArguments(0)).and(isPublic()),
|
||||
ConsumerAdvice.class.getName());
|
||||
JMSMessageConsumerInstrumentation.class.getName() + "$ConsumerAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ public final class JMSMessageListenerInstrumentation extends Instrumenter.Defaul
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
named("onMessage").and(takesArgument(0, named("javax.jms.Message"))).and(isPublic()),
|
||||
MessageListenerAdvice.class.getName());
|
||||
JMSMessageListenerInstrumentation.class.getName() + "$MessageListenerAdvice");
|
||||
}
|
||||
|
||||
public static class MessageListenerAdvice {
|
||||
|
|
|
@ -58,13 +58,13 @@ public final class JMSMessageProducerInstrumentation extends Instrumenter.Defaul
|
|||
final Map<ElementMatcher<? super MethodDescription>, String> transformers = new HashMap<>();
|
||||
transformers.put(
|
||||
named("send").and(takesArgument(0, named("javax.jms.Message"))).and(isPublic()),
|
||||
ProducerAdvice.class.getName());
|
||||
JMSMessageProducerInstrumentation.class.getName() + "$ProducerAdvice");
|
||||
transformers.put(
|
||||
named("send")
|
||||
.and(takesArgument(0, named("javax.jms.Destination")))
|
||||
.and(takesArgument(1, named("javax.jms.Message")))
|
||||
.and(isPublic()),
|
||||
ProducerWithDestinationAdvice.class.getName());
|
||||
JMSMessageProducerInstrumentation.class.getName() + "$ProducerWithDestinationAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class JSPInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, named("javax.servlet.http.HttpServletRequest")))
|
||||
.and(takesArgument(1, named("javax.servlet.http.HttpServletResponse")))
|
||||
.and(isPublic()),
|
||||
HttpJspPageAdvice.class.getName());
|
||||
JSPInstrumentation.class.getName() + "$HttpJspPageAdvice");
|
||||
}
|
||||
|
||||
public static class HttpJspPageAdvice {
|
||||
|
|
|
@ -56,21 +56,21 @@ public final class KafkaConsumerInstrumentation extends Instrumenter.Default {
|
|||
.and(named("records"))
|
||||
.and(takesArgument(0, String.class))
|
||||
.and(returns(Iterable.class)),
|
||||
IterableAdvice.class.getName());
|
||||
KafkaConsumerInstrumentation.class.getName() + "$IterableAdvice");
|
||||
transformers.put(
|
||||
isMethod()
|
||||
.and(isPublic())
|
||||
.and(named("records"))
|
||||
.and(takesArgument(0, named("org.apache.kafka.common.TopicPartition")))
|
||||
.and(returns(List.class)),
|
||||
ListAdvice.class.getName());
|
||||
KafkaConsumerInstrumentation.class.getName() + "$ListAdvice");
|
||||
transformers.put(
|
||||
isMethod()
|
||||
.and(isPublic())
|
||||
.and(named("iterator"))
|
||||
.and(takesArguments(0))
|
||||
.and(returns(Iterator.class)),
|
||||
IteratorAdvice.class.getName());
|
||||
KafkaConsumerInstrumentation.class.getName() + "$IteratorAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ public final class KafkaProducerInstrumentation extends Instrumenter.Default {
|
|||
.and(named("send"))
|
||||
.and(takesArgument(0, named("org.apache.kafka.clients.producer.ProducerRecord")))
|
||||
.and(takesArgument(1, named("org.apache.kafka.clients.producer.Callback"))),
|
||||
ProducerAdvice.class.getName());
|
||||
KafkaProducerInstrumentation.class.getName() + "$ProducerAdvice");
|
||||
}
|
||||
|
||||
public static class ProducerAdvice {
|
||||
|
|
|
@ -64,7 +64,7 @@ public class KafkaStreamsProcessorInstrumentation {
|
|||
.and(isPackagePrivate())
|
||||
.and(named("nextRecord"))
|
||||
.and(returns(named("org.apache.kafka.streams.processor.internals.StampedRecord"))),
|
||||
StartSpanAdvice.class.getName());
|
||||
StartInstrumentation.class.getName() + "$StartSpanAdvice");
|
||||
}
|
||||
|
||||
public static class StartSpanAdvice {
|
||||
|
@ -112,7 +112,7 @@ public class KafkaStreamsProcessorInstrumentation {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(named("process")).and(takesArguments(0)),
|
||||
StopSpanAdvice.class.getName());
|
||||
StopInstrumentation.class.getName() + "$StopSpanAdvice");
|
||||
}
|
||||
|
||||
public static class StopSpanAdvice {
|
||||
|
|
|
@ -38,7 +38,8 @@ public class KafkaStreamsSourceNodeRecordDeserializerInstrumentation extends Ins
|
|||
.and(named("deserialize"))
|
||||
.and(takesArgument(0, named("org.apache.kafka.clients.consumer.ConsumerRecord")))
|
||||
.and(returns(named("org.apache.kafka.clients.consumer.ConsumerRecord"))),
|
||||
SaveHeadersAdvice.class.getName());
|
||||
KafkaStreamsSourceNodeRecordDeserializerInstrumentation.class.getName()
|
||||
+ "$SaveHeadersAdvice");
|
||||
}
|
||||
|
||||
public static class SaveHeadersAdvice {
|
||||
|
|
|
@ -36,7 +36,8 @@ public class Log4j1MDCInstrumentation extends Instrumenter.Default {
|
|||
|
||||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(isConstructor(), MDCContextAdvice.class.getName());
|
||||
return singletonMap(
|
||||
isConstructor(), Log4j1MDCInstrumentation.class.getName() + "$MDCContextAdvice");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -36,7 +36,8 @@ public class ThreadContextInstrumentation extends Instrumenter.Default {
|
|||
|
||||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(isTypeInitializer(), ThreadContextAdvice.class.getName());
|
||||
return singletonMap(
|
||||
isTypeInitializer(), ThreadContextInstrumentation.class.getName() + "$ThreadContextAdvice");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -56,7 +56,7 @@ public final class MongoClientInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(named("build")).and(takesArguments(0)),
|
||||
MongoClientAdvice.class.getName());
|
||||
MongoClientInstrumentation.class.getName() + "$MongoClientAdvice");
|
||||
}
|
||||
|
||||
public static class MongoClientAdvice {
|
||||
|
|
|
@ -56,7 +56,7 @@ public final class MongoAsyncClientInstrumentation extends Instrumenter.Default
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(named("build")).and(takesArguments(0)),
|
||||
MongoAsyncClientAdvice.class.getName());
|
||||
MongoAsyncClientInstrumentation.class.getName() + "$MongoAsyncClientAdvice");
|
||||
}
|
||||
|
||||
public static class MongoAsyncClientAdvice {
|
||||
|
|
|
@ -70,7 +70,7 @@ public class ChannelFutureListenerInstrumentation extends Instrumenter.Default {
|
|||
isMethod()
|
||||
.and(named("operationComplete"))
|
||||
.and(takesArgument(0, named("io.netty.channel.ChannelFuture"))),
|
||||
OperationCompleteAdvice.class.getName());
|
||||
ChannelFutureListenerInstrumentation.class.getName() + "$OperationCompleteAdvice");
|
||||
}
|
||||
|
||||
public static class OperationCompleteAdvice {
|
||||
|
|
|
@ -83,10 +83,10 @@ public class NettyChannelPipelineInstrumentation extends Instrumenter.Default {
|
|||
isMethod()
|
||||
.and(nameStartsWith("add"))
|
||||
.and(takesArgument(2, named("io.netty.channel.ChannelHandler"))),
|
||||
ChannelPipelineAddAdvice.class.getName());
|
||||
NettyChannelPipelineInstrumentation.class.getName() + "$ChannelPipelineAddAdvice");
|
||||
transformers.put(
|
||||
isMethod().and(named("connect")).and(returns(named("io.netty.channel.ChannelFuture"))),
|
||||
ChannelPipelineConnectAdvice.class.getName());
|
||||
NettyChannelPipelineInstrumentation.class.getName() + "$ChannelPipelineConnectAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ public class ChannelFutureListenerInstrumentation extends Instrumenter.Default {
|
|||
isMethod()
|
||||
.and(named("operationComplete"))
|
||||
.and(takesArgument(0, named("io.netty.channel.ChannelFuture"))),
|
||||
OperationCompleteAdvice.class.getName());
|
||||
ChannelFutureListenerInstrumentation.class.getName() + "$OperationCompleteAdvice");
|
||||
}
|
||||
|
||||
public static class OperationCompleteAdvice {
|
||||
|
|
|
@ -83,10 +83,10 @@ public class NettyChannelPipelineInstrumentation extends Instrumenter.Default {
|
|||
isMethod()
|
||||
.and(nameStartsWith("add"))
|
||||
.and(takesArgument(2, named("io.netty.channel.ChannelHandler"))),
|
||||
ChannelPipelineAddAdvice.class.getName());
|
||||
NettyChannelPipelineInstrumentation.class.getName() + "$ChannelPipelineAddAdvice");
|
||||
transformers.put(
|
||||
isMethod().and(named("connect")).and(returns(named("io.netty.channel.ChannelFuture"))),
|
||||
ChannelPipelineConnectAdvice.class.getName());
|
||||
NettyChannelPipelineInstrumentation.class.getName() + "$ChannelPipelineConnectAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ public class OkHttp3Instrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isConstructor().and(takesArgument(0, named("okhttp3.OkHttpClient$Builder"))),
|
||||
OkHttp3Advice.class.getName());
|
||||
OkHttp3Instrumentation.class.getName() + "$OkHttp3Advice");
|
||||
}
|
||||
|
||||
public static class OkHttp3Advice {
|
||||
|
|
|
@ -55,7 +55,7 @@ public final class OSGIClassloadingInstrumentation extends Instrumenter.Default
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(named("newFramework")).and(takesArgument(0, Map.class)),
|
||||
FrameworkFactoryAdvice.class.getName());
|
||||
OSGIClassloadingInstrumentation.class.getName() + "$FrameworkFactoryAdvice");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -45,7 +45,7 @@ public class PlayWSClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArguments(2))
|
||||
.and(takesArgument(0, named("play.shaded.ahc.org.asynchttpclient.Request")))
|
||||
.and(takesArgument(1, named("play.shaded.ahc.org.asynchttpclient.AsyncHandler"))),
|
||||
ClientAdvice.class.getName());
|
||||
PlayWSClientInstrumentation.class.getName() + "$ClientAdvice");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -45,7 +45,7 @@ public class PlayWSClientInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArguments(2))
|
||||
.and(takesArgument(0, named("play.shaded.ahc.org.asynchttpclient.Request")))
|
||||
.and(takesArgument(1, named("play.shaded.ahc.org.asynchttpclient.AsyncHandler"))),
|
||||
ClientAdvice.class.getName());
|
||||
PlayWSClientInstrumentation.class.getName() + "$ClientAdvice");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -93,19 +93,19 @@ public class RabbitChannelInstrumentation extends Instrumenter.Default {
|
|||
.or(named("basicGet"))))
|
||||
.and(isPublic())
|
||||
.and(canThrow(IOException.class).or(canThrow(InterruptedException.class))),
|
||||
ChannelMethodAdvice.class.getName());
|
||||
RabbitChannelInstrumentation.class.getName() + "$ChannelMethodAdvice");
|
||||
transformers.put(
|
||||
isMethod().and(named("basicPublish")).and(takesArguments(6)),
|
||||
ChannelPublishAdvice.class.getName());
|
||||
RabbitChannelInstrumentation.class.getName() + "$ChannelPublishAdvice");
|
||||
transformers.put(
|
||||
isMethod().and(named("basicGet")).and(takesArgument(0, String.class)),
|
||||
ChannelGetAdvice.class.getName());
|
||||
RabbitChannelInstrumentation.class.getName() + "$ChannelGetAdvice");
|
||||
transformers.put(
|
||||
isMethod()
|
||||
.and(named("basicConsume"))
|
||||
.and(takesArgument(0, String.class))
|
||||
.and(takesArgument(6, named("com.rabbitmq.client.Consumer"))),
|
||||
ChannelConsumeAdvice.class.getName());
|
||||
RabbitChannelInstrumentation.class.getName() + "$ChannelConsumeAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,9 @@ public class RabbitCommandInstrumentation extends Instrumenter.Default {
|
|||
|
||||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(isConstructor(), CommandConstructorAdvice.class.getName());
|
||||
return singletonMap(
|
||||
isConstructor(),
|
||||
RabbitCommandInstrumentation.class.getName() + "$CommandConstructorAdvice");
|
||||
}
|
||||
|
||||
public static class CommandConstructorAdvice {
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class ContinuationInstrumentation extends Instrumenter.Default {
|
|||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
named("resume").and(takesArgument(0, named("ratpack.func.Block"))),
|
||||
ResumeAdvice.class.getName());
|
||||
ContinuationInstrumentation.class.getName() + "$ResumeAdvice");
|
||||
}
|
||||
|
||||
public static class ResumeAdvice {
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class DefaultExecutionInstrumentation extends Instrumenter.Default
|
|||
nameStartsWith("delimit") // include delimitStream
|
||||
.and(takesArgument(0, named("ratpack.func.Action")))
|
||||
.and(takesArgument(1, named("ratpack.func.Action"))),
|
||||
DelimitAdvice.class.getName());
|
||||
DefaultExecutionInstrumentation.class.getName() + "$DelimitAdvice");
|
||||
}
|
||||
|
||||
public static class DelimitAdvice {
|
||||
|
|
|
@ -62,6 +62,6 @@ public final class Servlet2Instrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, named("javax.servlet.ServletRequest")))
|
||||
.and(takesArgument(1, named("javax.servlet.ServletResponse")))
|
||||
.and(isPublic()),
|
||||
Servlet2Advice.class.getName());
|
||||
packageName + ".Servlet2Advice");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,7 +44,8 @@ public final class AsyncContextInstrumentation extends Instrumenter.Default {
|
|||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(
|
||||
isMethod().and(isPublic()).and(named("dispatch")), DispatchAdvice.class.getName());
|
||||
isMethod().and(isPublic()).and(named("dispatch")),
|
||||
AsyncContextInstrumentation.class.getName() + "$DispatchAdvice");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -54,6 +54,6 @@ public final class Servlet3Instrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, named("javax.servlet.ServletRequest")))
|
||||
.and(takesArgument(1, named("javax.servlet.ServletResponse")))
|
||||
.and(isPublic()),
|
||||
Servlet3Advice.class.getName());
|
||||
packageName + ".Servlet3Advice");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,8 @@ public class MDCInjectionInstrumentation extends Instrumenter.Default {
|
|||
|
||||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return singletonMap(isTypeInitializer(), MDCAdvice.class.getName());
|
||||
return singletonMap(
|
||||
isTypeInitializer(), MDCInjectionInstrumentation.class.getName() + "$MDCAdvice");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -43,7 +43,7 @@ public class RoutesInstrumentation extends Instrumenter.Default {
|
|||
.and(takesArgument(0, named("spark.route.HttpMethod")))
|
||||
.and(returns(named("spark.routematch.RouteMatch")))
|
||||
.and(isPublic()),
|
||||
RoutesAdvice.class.getName());
|
||||
RoutesInstrumentation.class.getName() + "$RoutesAdvice");
|
||||
}
|
||||
|
||||
public static class RoutesAdvice {
|
||||
|
|
|
@ -56,7 +56,8 @@ public final class SpringRepositoryInstrumentation extends Instrumenter.Default
|
|||
@Override
|
||||
public Map<? extends ElementMatcher<? super MethodDescription>, String> transformers() {
|
||||
return Collections.singletonMap(
|
||||
isConstructor(), RepositoryFactorySupportAdvice.class.getName());
|
||||
isConstructor(),
|
||||
SpringRepositoryInstrumentation.class.getName() + "$RepositoryFactorySupportAdvice");
|
||||
}
|
||||
|
||||
public static class RepositoryFactorySupportAdvice {
|
||||
|
|
|
@ -55,13 +55,13 @@ public final class DispatcherServletInstrumentation extends Instrumenter.Default
|
|||
.and(isProtected())
|
||||
.and(named("render"))
|
||||
.and(takesArgument(0, named("org.springframework.web.servlet.ModelAndView"))),
|
||||
DispatcherAdvice.class.getName());
|
||||
DispatcherServletInstrumentation.class.getName() + "$DispatcherAdvice");
|
||||
transformers.put(
|
||||
isMethod()
|
||||
.and(isProtected())
|
||||
.and(nameStartsWith("processHandlerException"))
|
||||
.and(takesArgument(3, Exception.class)),
|
||||
ErrorHandlerAdvice.class.getName());
|
||||
DispatcherServletInstrumentation.class.getName() + "$ErrorHandlerAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ public final class HandlerAdapterInstrumentation extends Instrumenter.Default {
|
|||
.and(nameStartsWith("handle"))
|
||||
.and(takesArgument(0, named("javax.servlet.http.HttpServletRequest")))
|
||||
.and(takesArguments(3)),
|
||||
ControllerAdvice.class.getName());
|
||||
HandlerAdapterInstrumentation.class.getName() + "$ControllerAdvice");
|
||||
}
|
||||
|
||||
public static class ControllerAdvice {
|
||||
|
|
|
@ -61,16 +61,16 @@ public final class MemcachedClientInstrumentation extends Instrumenter.Default {
|
|||
Also tracing flush is probably of a very limited value.
|
||||
*/
|
||||
.and(not(named("flush"))),
|
||||
AsyncOperationAdvice.class.getName());
|
||||
MemcachedClientInstrumentation.class.getName() + "$AsyncOperationAdvice");
|
||||
transformers.put(
|
||||
isMethod().and(isPublic()).and(returns(named(MEMCACHED_PACKAGE + ".internal.GetFuture"))),
|
||||
AsyncGetAdvice.class.getName());
|
||||
MemcachedClientInstrumentation.class.getName() + "$AsyncGetAdvice");
|
||||
transformers.put(
|
||||
isMethod().and(isPublic()).and(returns(named(MEMCACHED_PACKAGE + ".internal.BulkFuture"))),
|
||||
AsyncBulkAdvice.class.getName());
|
||||
MemcachedClientInstrumentation.class.getName() + "$AsyncBulkAdvice");
|
||||
transformers.put(
|
||||
isMethod().and(isPublic()).and(named("incr").or(named("decr"))),
|
||||
SyncOperationAdvice.class.getName());
|
||||
MemcachedClientInstrumentation.class.getName() + "$SyncOperationAdvice");
|
||||
return transformers;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ public final class TomcatClassloadingInstrumentation extends Instrumenter.Defaul
|
|||
.and(takesArgument(0, String.class))
|
||||
// Older versions have 1 argument method, newer versions have two arguments
|
||||
.and(takesArguments(2).or(takesArguments(1))),
|
||||
WebappClassLoaderAdvice.class.getName());
|
||||
TomcatClassloadingInstrumentation.class.getName() + "$WebappClassLoaderAdvice");
|
||||
}
|
||||
|
||||
public static class WebappClassLoaderAdvice {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue