diff --git a/agent/src/main/resources/pinpoint-root.config b/agent/src/main/resources/pinpoint-root.config index 3548bdf4d8d2f..5fdd10610dd5c 100644 --- a/agent/src/main/resources/pinpoint-root.config +++ b/agent/src/main/resources/pinpoint-root.config @@ -356,6 +356,7 @@ profiler.server.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.server.excludeurl= +profiler.server.trace.excludemethod= # HTTP Request methods to exclude from tracing. # e.g. POST, PUT profiler.server.excludemethod= diff --git a/agent/src/main/resources/profiles/local/pinpoint.config b/agent/src/main/resources/profiles/local/pinpoint.config index a989e95b349ef..bcb47bb429adf 100644 --- a/agent/src/main/resources/profiles/local/pinpoint.config +++ b/agent/src/main/resources/profiles/local/pinpoint.config @@ -339,6 +339,7 @@ profiler.tomcat.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.tomcat.excludeurl= +# profiler.tomcat.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.tomcat.excludemethod= profiler.tomcat.tracerequestparam=true @@ -363,6 +364,7 @@ profiler.jetty.bootstrap.main=org.eclipse.jetty.start.Main # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.jetty.excludeurl= +# profiler.jetty.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.jetty.excludemethod= # Hide pinpoint headers. @@ -404,6 +406,7 @@ profiler.jboss.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.jboss.excludeurl= +# profiler.jboss.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.jboss.excludemethod= profiler.jboss.tracerequestparam=true @@ -428,6 +431,7 @@ profiler.resin.tracerequestparam=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.resin.excludeurl= +# profiler.resin.trace.excludemethod= # Hide pinpoint headers. profiler.resin.hidepinpointheader=true # HTTP Request methods to exclude from tracing @@ -452,6 +456,7 @@ profiler.weblogic.tracerequestparam=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.weblogic.excludeurl= +# profiler.weblogic.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.weblogic.excludemethod= # Hide pinpoint headers. @@ -476,6 +481,7 @@ profiler.websphere.tracerequestparam=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.websphere.excludeurl= +# profiler.websphere.trace.excludemethod= # HTTP Request methods to exclude from tracing profiler.websphere.excludemethod= # Hide pinpoint headers. @@ -512,6 +518,7 @@ profiler.vertx.http.server.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.vertx.http.server.excludeurl= +# profiler.vertx.http.server.trace.excludemethod= # original IP address header # https://en.wikipedia.org/wiki/X-Forwarded-For #profiler.vertx.http.server.realipheader=X-Forwarded-For @@ -553,6 +560,7 @@ profiler.undertow.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.undertow.excludeurl= +# profiler.undertow.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.undertow.excludemethod= @@ -586,6 +594,7 @@ profiler.reactor-netty.server.tracerequestparam=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.reactor-netty.server.excludeurl= +# profiler.reactor-netty.server.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.reactor-netty.server.excludemethod= @@ -1254,6 +1263,7 @@ profiler.akka.http.enable=false profiler.akka.http.realipheader=Remote-Address # URLs to exclude from tracing profiler.akka.http.excludeurl= +# profiler.akka.http.trace.excludemethod= # HTTP Request methods to exclude from tracing profiler.akka.http.excludemethod= # Set transform target diff --git a/agent/src/main/resources/profiles/release/pinpoint.config b/agent/src/main/resources/profiles/release/pinpoint.config index a0221b1cffac7..21b83528cf64d 100644 --- a/agent/src/main/resources/profiles/release/pinpoint.config +++ b/agent/src/main/resources/profiles/release/pinpoint.config @@ -338,6 +338,7 @@ profiler.tomcat.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.tomcat.excludeurl= +# profiler.tomcat.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.tomcat.excludemethod=POST,PUT profiler.tomcat.tracerequestparam=true @@ -360,6 +361,7 @@ profiler.jetty.bootstrap.main=org.eclipse.jetty.start.Main # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.jetty.excludeurl= +# profiler.jetty.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.jetty.excludemethod= # Hide pinpoint headers. @@ -401,6 +403,7 @@ profiler.jboss.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.jboss.excludeurl= +# profiler.jboss.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.jboss.excludemethod= profiler.jboss.tracerequestparam=true @@ -425,6 +428,7 @@ profiler.resin.tracerequestparam=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.resin.excludeurl= +# profiler.resin.trace.excludemethod= # Hide pinpoint headers. profiler.resin.hidepinpointheader=true # HTTP Request methods to exclude from tracing @@ -449,6 +453,7 @@ profiler.weblogic.tracerequestparam=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.weblogic.excludeurl= +# profiler.weblogic.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.weblogic.excludemethod= # Hide pinpoint headers. @@ -473,6 +478,7 @@ profiler.websphere.tracerequestparam=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.websphere.excludeurl= +# profiler.websphere.trace.excludemethod= # HTTP Request methods to exclude from tracing profiler.websphere.excludemethod= # Hide pinpoint headers. @@ -509,6 +515,7 @@ profiler.vertx.http.server.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.vertx.http.server.excludeurl= +# profiler.vertx.http.server.trace.excludemethod= # original IP address header # https://en.wikipedia.org/wiki/X-Forwarded-For #profiler.vertx.http.server.realipheader=X-Forwarded-For @@ -551,6 +558,7 @@ profiler.undertow.hidepinpointheader=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.undertow.excludeurl= +# profiler.undertow.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.undertow.excludemethod= @@ -583,6 +591,7 @@ profiler.reactor-netty.server.tracerequestparam=true # URLs to exclude from tracing. # Support ant style pattern. e.g. /aa/*.html, /??/exclude.html profiler.reactor-netty.server.excludeurl= +# profiler.reactor-netty.trace.excludemethod= # HTTP Request methods to exclude from tracing #profiler.reactor-netty.server.excludemethod= @@ -1278,6 +1287,7 @@ profiler.akka.http.enable=false profiler.akka.http.realipheader=Remote-Address # URLs to exclude from tracing profiler.akka.http.excludeurl= +# profiler.akka.http.trace.excludemethod= # HTTP Request methods to exclude from tracing profiler.akka.http.excludemethod= # Set transform target diff --git a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/config/ServerConfig.java b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/config/ServerConfig.java index 2383835196142..2389a6367552a 100644 --- a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/config/ServerConfig.java +++ b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/config/ServerConfig.java @@ -28,6 +28,7 @@ public class ServerConfig { static final String REAL_IP_HEADER_PROPERTY_NAME = "profiler.server.realipheader"; static final String REAL_IP_EMPTY_VALUE_PROPERTY_NAME = "profiler.server.realipemptyvalue"; static final String EXCLUDE_METHOD_PROPERTY_NAME = "profiler.server.excludemethod"; + static final String PRE_EXCLUDE_METHOD_PROPERTY_NAME = "profiler.server.trace.excludemethod"; private final ProfilerConfig config; @@ -100,6 +101,14 @@ public String getRealIpEmptyValue(final String propertyName) { } public Filter getExcludeMethodFilter(final String propertyName) { + return getStringFilter(propertyName, EXCLUDE_METHOD_PROPERTY_NAME); + } + + public Filter getTraceExcludeMethodFilter(final String propertyName) { + return getStringFilter(propertyName, PRE_EXCLUDE_METHOD_PROPERTY_NAME); + } + + private Filter getStringFilter(String propertyName, String fallbackPropertyName) { Objects.requireNonNull(propertyName, "propertyName"); final String propertyValue = config.readString(propertyName, ""); @@ -107,11 +116,12 @@ public Filter getExcludeMethodFilter(final String propertyName) { // Individual settings take precedence. return new ExcludeMethodFilter(propertyValue); } - final String serverExcludeUrlPropertyValue = config.readString(EXCLUDE_METHOD_PROPERTY_NAME, ""); + final String serverExcludeUrlPropertyValue = config.readString(fallbackPropertyName, ""); if (!serverExcludeUrlPropertyValue.isEmpty()) { return new ExcludeMethodFilter(serverExcludeUrlPropertyValue); } return new SkipFilter<>(); } + } \ No newline at end of file diff --git a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/RequestAdaptor.java b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/RequestAdaptor.java index e234592c70b62..16bc4a53f4998 100644 --- a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/RequestAdaptor.java +++ b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/RequestAdaptor.java @@ -39,6 +39,13 @@ public interface RequestAdaptor { */ String getRpcName(REQ request); + /** + * Method name (optional) + * + * @return + */ + String getMethodName(REQ request); + /** * Server address * diff --git a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServerRequestWrapper.java b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServerRequestWrapper.java index 5b5db7b6f9aeb..6e0e315fcdef0 100644 --- a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServerRequestWrapper.java +++ b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServerRequestWrapper.java @@ -29,6 +29,13 @@ public interface ServerRequestWrapper extends RequestWrapper { */ String getRpcName(); + /** + * Method name (optional) + * + * @return + */ + String getMethodName(); + /** * Server address * diff --git a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServerRequestWrapperAdaptor.java b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServerRequestWrapperAdaptor.java index 6887813528479..3402f3cbcbc81 100644 --- a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServerRequestWrapperAdaptor.java +++ b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServerRequestWrapperAdaptor.java @@ -39,6 +39,11 @@ public String getRpcName(ServerRequestWrapper request) { return request.getRpcName(); } + @Override + public String getMethodName(ServerRequestWrapper request) { + return request.getMethodName(); + } + @Override public String getEndPoint(ServerRequestWrapper request) { return request.getEndPoint(); diff --git a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServletRequestListener.java b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServletRequestListener.java index 6ea8d3389de24..1df8a6d4ab915 100644 --- a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServletRequestListener.java +++ b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServletRequestListener.java @@ -47,6 +47,7 @@ public class ServletRequestListener { private final RequestAdaptor requestAdaptor; private final Filter excludeUrlFilter; + private final Filter excludeMethodFilter; private final RequestTraceReader requestTraceReader; private final ServerRequestRecorder serverRequestRecorder; private final HttpStatusCodeRecorder httpStatusCodeRecorder; @@ -60,6 +61,7 @@ public ServletRequestListener(final ServiceType serviceType, final RequestAdaptor requestAdaptor, final RequestTraceReader requestTraceReader, final Filter excludeUrlFilter, + final Filter excludeMethodFilter, final ParameterRecorder parameterRecorder, final ProxyRequestRecorder proxyRequestRecorder, final ServerRequestRecorder serverRequestRecorder, @@ -70,6 +72,7 @@ public ServletRequestListener(final ServiceType serviceType, this.requestTraceReader = Objects.requireNonNull(requestTraceReader, "requestTraceReader"); this.proxyRequestRecorder = Objects.requireNonNull(proxyRequestRecorder, "proxyRequestRecorder"); this.excludeUrlFilter = Objects.requireNonNull(excludeUrlFilter, "excludeUrlFilter"); + this.excludeMethodFilter = Objects.requireNonNull(excludeMethodFilter, "excludeMethodFilter"); this.parameterRecorder = Objects.requireNonNull(parameterRecorder, "parameterRecorder"); this.serverRequestRecorder = Objects.requireNonNull(serverRequestRecorder, "serverRequestRecorder"); this.httpStatusCodeRecorder = Objects.requireNonNull(httpStatusCodeRecorder, "httpStatusCodeRecorder"); @@ -108,6 +111,14 @@ private Trace createTrace(REQ request) { return null; } + final String methodName = requestAdaptor.getMethodName(request); + if (this.excludeMethodFilter.filter(methodName)) { + if (isTrace) { + logger.trace("Filter methodName={}", methodName); + } + return null; + } + final Trace trace = this.requestTraceReader.read(request); if (trace.canSampled()) { final SpanRecorder recorder = trace.getSpanRecorder(); diff --git a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServletRequestListenerBuilder.java b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServletRequestListenerBuilder.java index 7a56a2e4b2aa6..d6c5984de6492 100644 --- a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServletRequestListenerBuilder.java +++ b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/ServletRequestListenerBuilder.java @@ -48,6 +48,7 @@ public class ServletRequestListenerBuilder { private ParameterRecorder parameterRecorder; private Filter excludeUrlFilter; + private Filter traceExcludeMethodFilter; private RequestRecorderFactory requestRecorderFactory; private HttpStatusCodeErrors httpStatusCodeErrors; @@ -79,6 +80,10 @@ public void setExcludeURLFilter(Filter excludeUrlFilter) { this.excludeUrlFilter = excludeUrlFilter; } + public void setTraceExcludeMethodFilter(Filter traceExcludeMethodFilter) { + this.traceExcludeMethodFilter = traceExcludeMethodFilter; + } + public void setRequestRecorderFactory(RequestRecorderFactory requestRecorderFactory) { this.requestRecorderFactory = requestRecorderFactory; } @@ -97,13 +102,20 @@ public void setServerCookieRecorder(List recordRequestCookies) { } private Filter newExcludeUrlFilter(Filter excludeUrlFilter) { + return filterNonNull(excludeUrlFilter); + } + + private Filter newTraceExcludeMethodFilter(Filter excludeMethodFilter) { + return filterNonNull(excludeMethodFilter); + } + + private static Filter filterNonNull(Filter excludeUrlFilter) { if (excludeUrlFilter == null) { return new SkipFilter<>(); } return excludeUrlFilter; } - public ServletRequestListener build() { RequestAdaptor requestAdaptor = RemoteAddressResolverFactory.wrapRealIpSupport(this.requestAdaptor, realIpHeader, realIpEmptyValue); @@ -120,6 +132,7 @@ public ServletRequestListener build() { Filter excludeUrlFilter = newExcludeUrlFilter(this.excludeUrlFilter); + Filter traceExcludeMethodFilter = newTraceExcludeMethodFilter(this.traceExcludeMethodFilter); final ServerRequestRecorder serverRequestRecorder = newServerRequestRecorder(requestAdaptor); @@ -136,7 +149,8 @@ public ServletRequestListener build() { return new ServletRequestListener<>(serviceType, traceContext, requestAdaptor, requestTraceReader, - excludeUrlFilter, parameterRecorder, proxyRequestRecorder, serverRequestRecorder, httpStatusCodeRecorder); + excludeUrlFilter, traceExcludeMethodFilter, parameterRecorder, proxyRequestRecorder, + serverRequestRecorder, httpStatusCodeRecorder); } diff --git a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/util/HeaderResolveRequestAdaptor.java b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/util/HeaderResolveRequestAdaptor.java index ef12e7d098bae..a25fe6cf96c69 100644 --- a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/util/HeaderResolveRequestAdaptor.java +++ b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/request/util/HeaderResolveRequestAdaptor.java @@ -51,6 +51,11 @@ public String getRpcName(T request) { return delegate.getRpcName(request); } + @Override + public String getMethodName(T request) { + return delegate.getMethodName(request); + } + @Override public String getEndPoint(T request) { return delegate.getEndPoint(request); diff --git a/bootstraps/bootstrap-core/src/test/java/com/navercorp/pinpoint/bootstrap/config/ServerConfigTest.java b/bootstraps/bootstrap-core/src/test/java/com/navercorp/pinpoint/bootstrap/config/ServerConfigTest.java index 53c895f6e59c5..b69983884dfdf 100644 --- a/bootstraps/bootstrap-core/src/test/java/com/navercorp/pinpoint/bootstrap/config/ServerConfigTest.java +++ b/bootstraps/bootstrap-core/src/test/java/com/navercorp/pinpoint/bootstrap/config/ServerConfigTest.java @@ -107,4 +107,19 @@ public void getExcludeMethodFilter() { Assertions.assertTrue(filter.filter("HEAD")); Assertions.assertFalse(filter.filter("POST")); } + + @Test + public void getTraceExcludeMethodFilter() { + final String propertyName = "profiler.tomcat.trace.excludemethod"; + Properties properties = new Properties(); + properties.setProperty(ServerConfig.PRE_EXCLUDE_METHOD_PROPERTY_NAME, "POST"); + properties.setProperty(propertyName, "HEAD"); + + ProfilerConfig profilerConfig = ProfilerConfigLoader.load(properties); + ServerConfig serverConfig = new ServerConfig(profilerConfig); + + Filter filter = serverConfig.getTraceExcludeMethodFilter(propertyName); + Assertions.assertTrue(filter.filter("HEAD")); + Assertions.assertFalse(filter.filter("POST")); + } } \ No newline at end of file diff --git a/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/AkkaHttpConfig.java b/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/AkkaHttpConfig.java index 2f8e26875eeec..9262b7ec36907 100644 --- a/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/AkkaHttpConfig.java +++ b/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/AkkaHttpConfig.java @@ -33,6 +33,7 @@ public class AkkaHttpConfig { private static final String KEY_TRANSFORM_PARAMETERS = "profiler.akka.http.transform.targetparameter"; private static final String KEY_ENABLE = "profiler.akka.http.enable"; private static final String KEY_EXCLUDEURL = "profiler.akka.http.excludeurl"; + private static final String KEY_TRACE_EXCLUDEMETHOD = "profiler.akka.http.trace.excludemethod"; private static final String KEY_IP_HEADER = "profiler.akka.http.realipheader"; private static final String KEY_EXCLUDE_HTTP_METHOD = "profiler.akka.http.excludemethod"; private static final boolean DEFAULT_ENABLE = false; @@ -42,6 +43,7 @@ public class AkkaHttpConfig { private final boolean enable; private final String realIpHeader; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final Filter excludeHttpMethodFilter; private final String transformTargetName; private final List transformParameters; @@ -56,6 +58,7 @@ public AkkaHttpConfig(ProfilerConfig config) { final ServerConfig serverConfig = new ServerConfig(config); this.realIpHeader = serverConfig.getRealIpHeader(KEY_IP_HEADER); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter(KEY_EXCLUDEURL); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter(KEY_TRACE_EXCLUDEMETHOD); this.excludeHttpMethodFilter = serverConfig.getExcludeMethodFilter(KEY_EXCLUDE_HTTP_METHOD); } @@ -67,6 +70,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public String getRealIpHeader() { return realIpHeader; } @@ -89,6 +96,7 @@ public String toString() { "enable=" + enable + ", realIpHeader='" + realIpHeader + '\'' + ", excludeUrlFilter=" + excludeUrlFilter + + ", traceExcludeMethodFilter=" + traceExcludeMethodFilter + ", excludeHttpMethodFilter=" + excludeHttpMethodFilter + ", transformTargetName='" + transformTargetName + '\'' + ", transformParameters=" + transformParameters + diff --git a/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/HttpRequestAdaptor.java b/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/HttpRequestAdaptor.java index 956ce2c0271c3..af7d355c3bcb0 100644 --- a/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/HttpRequestAdaptor.java +++ b/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/HttpRequestAdaptor.java @@ -107,6 +107,11 @@ public String getRpcName(HttpRequest request) { return UNKNOWN; } + @Override + public String getMethodName(HttpRequest request) { + return request.method().name(); + } + private boolean validateRpcName(Uri uri) { if (uri == null) { return false; diff --git a/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/interceptor/DirectivesInterceptor.java b/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/interceptor/DirectivesInterceptor.java index 2925afc88ba72..a90bb29d138d8 100644 --- a/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/interceptor/DirectivesInterceptor.java +++ b/plugins/akka-http/src/main/java/com/navercorp/pinpoint/plugin/akka/http/interceptor/DirectivesInterceptor.java @@ -61,6 +61,7 @@ public class DirectivesInterceptor implements AroundInterceptor { private final RequestAdaptor requestAdaptor; private final Filter excludeHttpMethodFilter; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; public DirectivesInterceptor(final TraceContext traceContext, final MethodDescriptor methodDescriptor, final RequestRecorderFactory requestRecorderFactory) { @@ -69,6 +70,7 @@ public DirectivesInterceptor(final TraceContext traceContext, final MethodDescri final AkkaHttpConfig config = new AkkaHttpConfig(traceContext.getProfilerConfig()); this.excludeUrlFilter = config.getExcludeUrlFilter(); + this.traceExcludeMethodFilter = config.getTraceExcludeMethodFilter(); this.excludeHttpMethodFilter = config.getExcludeHttpMethodFilter(); this.requestAdaptor = new HttpRequestAdaptor(config); this.proxyRequestRecorder = requestRecorderFactory.getProxyRequestRecorder(requestAdaptor); @@ -136,6 +138,15 @@ private Trace createTrace(final HttpRequest request) { return null; } + final String methodName = String.valueOf(request.method().name()); + if (methodName != null && traceExcludeMethodFilter.filter(methodName)) { + // skip request. + if (isTrace) { + logger.trace("filter method:{}", methodName); + } + return null; + } + HttpMethod method = request.method(); if (method != null && excludeHttpMethodFilter.filter(method.value())) { // skip request. diff --git a/plugins/common-servlet/src/main/java/com/navercorp/pinpoint/plugin/common/servlet/jakarta/util/HttpServletRequestAdaptor.java b/plugins/common-servlet/src/main/java/com/navercorp/pinpoint/plugin/common/servlet/jakarta/util/HttpServletRequestAdaptor.java index 7515f8ec8aac8..de668daa382c7 100644 --- a/plugins/common-servlet/src/main/java/com/navercorp/pinpoint/plugin/common/servlet/jakarta/util/HttpServletRequestAdaptor.java +++ b/plugins/common-servlet/src/main/java/com/navercorp/pinpoint/plugin/common/servlet/jakarta/util/HttpServletRequestAdaptor.java @@ -69,6 +69,11 @@ public String getRpcName(HttpServletRequest request) { return request.getRequestURI(); } + @Override + public String getMethodName(HttpServletRequest request) { + return request.getMethod(); + } + @Override public String getEndPoint(HttpServletRequest request) { String serverName = request.getServerName(); diff --git a/plugins/common-servlet/src/main/java/com/navercorp/pinpoint/plugin/common/servlet/util/HttpServletRequestAdaptor.java b/plugins/common-servlet/src/main/java/com/navercorp/pinpoint/plugin/common/servlet/util/HttpServletRequestAdaptor.java index 44e179e913a21..e55c04789f762 100644 --- a/plugins/common-servlet/src/main/java/com/navercorp/pinpoint/plugin/common/servlet/util/HttpServletRequestAdaptor.java +++ b/plugins/common-servlet/src/main/java/com/navercorp/pinpoint/plugin/common/servlet/util/HttpServletRequestAdaptor.java @@ -69,6 +69,11 @@ public String getRpcName(HttpServletRequest request) { return request.getRequestURI(); } + @Override + public String getMethodName(HttpServletRequest request) { + return request.getMethod(); + } + @Override public String getEndPoint(HttpServletRequest request) { String serverName = request.getServerName(); diff --git a/plugins/common-servlet/src/test/java/com/navercorp/pinpoint/plugin/common/servlet/ServerRequestRecorderFactoryTest.java b/plugins/common-servlet/src/test/java/com/navercorp/pinpoint/plugin/common/servlet/ServerRequestRecorderFactoryTest.java index 646243fa08dcd..15ba44b9886bd 100644 --- a/plugins/common-servlet/src/test/java/com/navercorp/pinpoint/plugin/common/servlet/ServerRequestRecorderFactoryTest.java +++ b/plugins/common-servlet/src/test/java/com/navercorp/pinpoint/plugin/common/servlet/ServerRequestRecorderFactoryTest.java @@ -31,6 +31,7 @@ */ public class ServerRequestRecorderFactoryTest { private static final String RPC_NAME = "rpcName"; + private static final String METHOD_NAME = "GET"; private static final String END_POINT = "endPoint"; private static final String REMOTE_ADDRESS = "remoteAddress"; private static final String ACCEPTOR_HOST = "acceptorHost"; @@ -58,6 +59,11 @@ public String getRpcName() { return RPC_NAME; } + @Override + public String getMethodName() { + return METHOD_NAME; + } + @Override public String getEndPoint() { return END_POINT; diff --git a/plugins/grpc/src/main/java/com/navercorp/pinpoint/plugin/grpc/interceptor/server/GrpcServerStreamRequestAdaptor.java b/plugins/grpc/src/main/java/com/navercorp/pinpoint/plugin/grpc/interceptor/server/GrpcServerStreamRequestAdaptor.java index dee23f3758ad6..404316de41cd6 100644 --- a/plugins/grpc/src/main/java/com/navercorp/pinpoint/plugin/grpc/interceptor/server/GrpcServerStreamRequestAdaptor.java +++ b/plugins/grpc/src/main/java/com/navercorp/pinpoint/plugin/grpc/interceptor/server/GrpcServerStreamRequestAdaptor.java @@ -50,6 +50,11 @@ public String getRpcName(GrpcServerStreamRequest request) { return methodName; } + @Override + public String getMethodName(GrpcServerStreamRequest request) { + return request.getMethodName(); + } + @Override public String getEndPoint(GrpcServerStreamRequest request) { return request.getServerAddress(); diff --git a/plugins/jboss/src/main/java/com/navercorp/pinpoint/plugin/jboss/JbossConfig.java b/plugins/jboss/src/main/java/com/navercorp/pinpoint/plugin/jboss/JbossConfig.java index bdfb891370e2f..28d9c68befb64 100644 --- a/plugins/jboss/src/main/java/com/navercorp/pinpoint/plugin/jboss/JbossConfig.java +++ b/plugins/jboss/src/main/java/com/navercorp/pinpoint/plugin/jboss/JbossConfig.java @@ -32,6 +32,7 @@ public class JbossConfig { private final boolean hidePinpointHeader; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final boolean traceEjb; private final boolean enable; private final List bootstrapMains; @@ -54,6 +55,7 @@ public JbossConfig(final ProfilerConfig config) { this.hidePinpointHeader = serverConfig.isHidePinpointHeader("profiler.jboss.hidepinpointheader"); this.traceRequestParam = serverConfig.isTraceRequestParam("profiler.jboss.tracerequestparam"); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.jboss.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.jboss.trace.excludemethod"); this.realIpHeader = serverConfig.getRealIpHeader("profiler.jboss.realipheader"); this.realIpEmptyValue = serverConfig.getRealIpEmptyValue("profiler.jboss.realipemptyvalue"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.jboss.excludemethod"); @@ -85,6 +87,15 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + /** + * Gets the jboss pre-exclude method filter. + * + * @return + */ + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + /** * Checks if is jboss trace ejb. * @@ -113,17 +124,17 @@ public Filter getExcludeProfileMethodFilter() { @Override public String toString() { - final StringBuilder sb = new StringBuilder("JbossConfig{"); - sb.append("hidePinpointHeader=").append(hidePinpointHeader); - sb.append(", excludeUrlFilter=").append(excludeUrlFilter); - sb.append(", traceEjb=").append(traceEjb); - sb.append(", enable=").append(enable); - sb.append(", bootstrapMains=").append(bootstrapMains); - sb.append(", realIpHeader='").append(realIpHeader).append('\''); - sb.append(", realIpEmptyValue='").append(realIpEmptyValue).append('\''); - sb.append(", traceRequestParam=").append(traceRequestParam); - sb.append(", excludeProfileMethodFilter=").append(excludeProfileMethodFilter); - sb.append('}'); - return sb.toString(); + return "JbossConfig{" + + "hidePinpointHeader=" + hidePinpointHeader + + ", excludeUrlFilter=" + excludeUrlFilter + + ", traceExcludeMethodFilter=" + traceExcludeMethodFilter + + ", traceEjb=" + traceEjb + + ", enable=" + enable + + ", bootstrapMains=" + bootstrapMains + + ", realIpHeader='" + realIpHeader + '\'' + + ", realIpEmptyValue='" + realIpEmptyValue + '\'' + + ", traceRequestParam=" + traceRequestParam + + ", excludeProfileMethodFilter=" + excludeProfileMethodFilter + + '}'; } } \ No newline at end of file diff --git a/plugins/jboss/src/main/java/com/navercorp/pinpoint/plugin/jboss/interceptor/StandardHostValveInvokeInterceptor.java b/plugins/jboss/src/main/java/com/navercorp/pinpoint/plugin/jboss/interceptor/StandardHostValveInvokeInterceptor.java index 24b16936bc51b..ebdc127fad331 100644 --- a/plugins/jboss/src/main/java/com/navercorp/pinpoint/plugin/jboss/interceptor/StandardHostValveInvokeInterceptor.java +++ b/plugins/jboss/src/main/java/com/navercorp/pinpoint/plugin/jboss/interceptor/StandardHostValveInvokeInterceptor.java @@ -80,6 +80,7 @@ public StandardHostValveInvokeInterceptor(final TraceContext traceContext, final ServletRequestListenerBuilder reqBuilder = new ServletRequestListenerBuilder<>(JbossConstants.JBOSS, traceContext, requestAdaptor); reqBuilder.setExcludeURLFilter(config.getExcludeUrlFilter()); + reqBuilder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); reqBuilder.setParameterRecorder(parameterRecorder); reqBuilder.setRequestRecorderFactory(requestRecorderFactory); diff --git a/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/JettyConfiguration.java b/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/JettyConfiguration.java index 8e358c845a7d8..8833eee1a385e 100644 --- a/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/JettyConfiguration.java +++ b/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/JettyConfiguration.java @@ -29,6 +29,7 @@ public class JettyConfiguration { private final boolean enable; private final List bootstrapMains; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final boolean hidePinpointHeader; private final String realIpHeader; private final String realIpEmptyValue; @@ -42,6 +43,7 @@ public JettyConfiguration(ProfilerConfig config) { // Server final ServerConfig serverConfig = new ServerConfig(config); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.jetty.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.jetty.trace.excludemethod"); this.hidePinpointHeader = serverConfig.isHidePinpointHeader("profiler.jetty.hidepinpointheader"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.jetty.excludemethod"); this.traceRequestParam = serverConfig.isTraceRequestParam("profiler.jetty.tracerequestparam"); @@ -61,6 +63,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public boolean isHidePinpointHeader() { return hidePinpointHeader; } @@ -83,16 +89,16 @@ public Filter getExcludeProfileMethodFilter() { @Override public String toString() { - final StringBuilder sb = new StringBuilder("JettyConfiguration{"); - sb.append("enable=").append(enable); - sb.append(", bootstrapMains=").append(bootstrapMains); - sb.append(", excludeUrlFilter=").append(excludeUrlFilter); - sb.append(", hidePinpointHeader=").append(hidePinpointHeader); - sb.append(", realIpHeader='").append(realIpHeader).append('\''); - sb.append(", realIpEmptyValue='").append(realIpEmptyValue).append('\''); - sb.append(", traceRequestParam=").append(traceRequestParam); - sb.append(", excludeProfileMethodFilter=").append(excludeProfileMethodFilter); - sb.append('}'); - return sb.toString(); + return "JettyConfiguration{" + + "enable=" + enable + + ", bootstrapMains=" + bootstrapMains + + ", excludeUrlFilter=" + excludeUrlFilter + + ", traceExcludeMethodFilter=" + traceExcludeMethodFilter + + ", hidePinpointHeader=" + hidePinpointHeader + + ", realIpHeader='" + realIpHeader + '\'' + + ", realIpEmptyValue='" + realIpEmptyValue + '\'' + + ", traceRequestParam=" + traceRequestParam + + ", excludeProfileMethodFilter=" + excludeProfileMethodFilter + + '}'; } } diff --git a/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/interceptor/AbstractServerHandleInterceptor.java b/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/interceptor/AbstractServerHandleInterceptor.java index 953759582d636..1d44ebc4b3eea 100644 --- a/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/interceptor/AbstractServerHandleInterceptor.java +++ b/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/interceptor/AbstractServerHandleInterceptor.java @@ -17,7 +17,8 @@ package com.navercorp.pinpoint.plugin.jetty.interceptor; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; -import com.navercorp.pinpoint.bootstrap.context.*; +import com.navercorp.pinpoint.bootstrap.context.MethodDescriptor; +import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.interceptor.AroundInterceptor; import com.navercorp.pinpoint.bootstrap.logging.PLogger; import com.navercorp.pinpoint.bootstrap.logging.PLoggerFactory; @@ -60,10 +61,14 @@ public AbstractServerHandleInterceptor(TraceContext traceContext, MethodDescript this.methodDescriptor = descriptor; final JettyConfiguration config = new JettyConfiguration(traceContext.getProfilerConfig()); RequestAdaptor requestAdaptor = new HttpServletRequestAdaptor(); - ParameterRecorder parameterRecorder = ParameterRecorderFactory.newParameterRecorderFactory(config.getExcludeProfileMethodFilter(), config.isTraceRequestParam()); + ParameterRecorder parameterRecorder = ParameterRecorderFactory.newParameterRecorderFactory( + config.getExcludeProfileMethodFilter(), + config.isTraceRequestParam() + ); ServletRequestListenerBuilder reqBuilder = new ServletRequestListenerBuilder<>(JettyConstants.JETTY, traceContext, requestAdaptor); reqBuilder.setExcludeURLFilter(config.getExcludeUrlFilter()); + reqBuilder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); reqBuilder.setParameterRecorder(parameterRecorder); reqBuilder.setRequestRecorderFactory(requestRecorderFactory); diff --git a/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/ReactorNettyPluginConfig.java b/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/ReactorNettyPluginConfig.java index 4b47223ddbcae..4696d56d6153a 100644 --- a/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/ReactorNettyPluginConfig.java +++ b/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/ReactorNettyPluginConfig.java @@ -31,6 +31,7 @@ public class ReactorNettyPluginConfig { private final List bootstrapMains; private final boolean traceRequestParam; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final String realIpHeader; private final String realIpEmptyValue; private final Filter excludeProfileMethodFilter; @@ -53,6 +54,7 @@ public ReactorNettyPluginConfig(ProfilerConfig config) { final ServerConfig serverConfig = new ServerConfig(config); this.traceRequestParam = serverConfig.isTraceRequestParam("profiler.reactor-netty.server.tracerequestparam"); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.reactor-netty.server.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.reactor-netty.server.trace.excludemethod"); this.realIpHeader = serverConfig.getRealIpHeader("profiler.reactor-netty.server.realipheader"); this.realIpEmptyValue = serverConfig.getRealIpEmptyValue("profiler.reactor-netty.server.realipemptyvalue"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.reactor-netty.server.excludemethod"); @@ -83,6 +85,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public String getRealIpHeader() { return realIpHeader; } @@ -130,6 +136,7 @@ public String toString() { ", bootstrapMains=" + bootstrapMains + ", traceRequestParam=" + traceRequestParam + ", excludeUrlFilter=" + excludeUrlFilter + + ", traceExcludeMethodFilter=" + traceExcludeMethodFilter + ", realIpHeader='" + realIpHeader + '\'' + ", realIpEmptyValue='" + realIpEmptyValue + '\'' + ", excludeProfileMethodFilter=" + excludeProfileMethodFilter + diff --git a/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/interceptor/HttpRequestAdaptor.java b/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/interceptor/HttpRequestAdaptor.java index fc364830e3279..8f70ac78a9e9d 100644 --- a/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/interceptor/HttpRequestAdaptor.java +++ b/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/interceptor/HttpRequestAdaptor.java @@ -18,7 +18,6 @@ import com.navercorp.pinpoint.bootstrap.plugin.request.RequestAdaptor; import com.navercorp.pinpoint.common.plugin.util.HostAndPort; - import io.netty.handler.codec.http.HttpHeaders; import reactor.netty.http.server.HttpServerRequest; @@ -60,6 +59,11 @@ public String getRpcName(HttpServerRequest request) { return null; } + @Override + public String getMethodName(HttpServerRequest request) { + return request.method().name(); + } + @Override public String getEndPoint(HttpServerRequest request) { final String host = getHost(request.hostAddress()); diff --git a/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/interceptor/HttpServerHandleInterceptor.java b/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/interceptor/HttpServerHandleInterceptor.java index 1a7d43dfc8434..85057e012a8a5 100644 --- a/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/interceptor/HttpServerHandleInterceptor.java +++ b/plugins/reactor-netty/src/main/java/com/navercorp/pinpoint/plugin/reactor/netty/interceptor/HttpServerHandleInterceptor.java @@ -71,6 +71,7 @@ public HttpServerHandleInterceptor(TraceContext traceContext, ServletRequestListenerBuilder reqBuilder = new ServletRequestListenerBuilder<>(ReactorNettyConstants.REACTOR_NETTY, traceContext, requestAdaptor); reqBuilder.setExcludeURLFilter(config.getExcludeUrlFilter()); + reqBuilder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); reqBuilder.setParameterRecorder(parameterRecorder); reqBuilder.setRequestRecorderFactory(requestRecorderFactory); diff --git a/plugins/resin/src/main/java/com/navercorp/pinpoint/plugin/resin/ResinConfig.java b/plugins/resin/src/main/java/com/navercorp/pinpoint/plugin/resin/ResinConfig.java index 8d5d802ec353d..416c8b17380de 100644 --- a/plugins/resin/src/main/java/com/navercorp/pinpoint/plugin/resin/ResinConfig.java +++ b/plugins/resin/src/main/java/com/navercorp/pinpoint/plugin/resin/ResinConfig.java @@ -16,6 +16,7 @@ public class ResinConfig { private final boolean hidePinpointHeader; private final boolean traceRequestParam; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final String realIpHeader; private final String realIpEmptyValue; private final Filter excludeProfileMethodFilter; @@ -30,6 +31,7 @@ public ResinConfig(ProfilerConfig config) { final ServerConfig serverConfig = new ServerConfig(config); this.traceRequestParam = serverConfig.isTraceRequestParam("profiler.resin.tracerequestparam"); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.resin.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.resin.trace.excludemethod"); this.realIpHeader = serverConfig.getRealIpHeader("profiler.resin.realipheader"); this.realIpEmptyValue = serverConfig.getRealIpEmptyValue("profiler.resin.realipemptyvalue"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.resin.excludemethod"); @@ -52,6 +54,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public String getRealIpHeader() { return realIpHeader; } @@ -70,16 +76,16 @@ public boolean isHidePinpointHeader() { @Override public String toString() { - final StringBuilder sb = new StringBuilder("ResinConfig{"); - sb.append("enable=").append(enable); - sb.append(", bootstrapMains='").append(bootstrapMains).append('\''); - sb.append(", hidePinpointHeader=").append(hidePinpointHeader); - sb.append(", traceRequestParam=").append(traceRequestParam); - sb.append(", excludeUrlFilter=").append(excludeUrlFilter); - sb.append(", realIpHeader='").append(realIpHeader).append('\''); - sb.append(", realIpEmptyValue='").append(realIpEmptyValue).append('\''); - sb.append(", excludeProfileMethodFilter=").append(excludeProfileMethodFilter); - sb.append('}'); - return sb.toString(); + return "ResinConfig{" + + "enable=" + enable + + ", bootstrapMains='" + bootstrapMains + '\'' + + ", hidePinpointHeader=" + hidePinpointHeader + + ", traceRequestParam=" + traceRequestParam + + ", excludeUrlFilter=" + excludeUrlFilter + + ", traceExcludeMethodFilter=" + traceExcludeMethodFilter + + ", realIpHeader='" + realIpHeader + '\'' + + ", realIpEmptyValue='" + realIpEmptyValue + '\'' + + ", excludeProfileMethodFilter=" + excludeProfileMethodFilter + + '}'; } } diff --git a/plugins/resin/src/main/java/com/navercorp/pinpoint/plugin/resin/interceptor/ServletInvocationServiceInterceptor.java b/plugins/resin/src/main/java/com/navercorp/pinpoint/plugin/resin/interceptor/ServletInvocationServiceInterceptor.java index 2fd42233679e2..cbd70bfbd80a8 100644 --- a/plugins/resin/src/main/java/com/navercorp/pinpoint/plugin/resin/interceptor/ServletInvocationServiceInterceptor.java +++ b/plugins/resin/src/main/java/com/navercorp/pinpoint/plugin/resin/interceptor/ServletInvocationServiceInterceptor.java @@ -66,6 +66,7 @@ public ServletInvocationServiceInterceptor(TraceContext traceContext, MethodDesc ServletRequestListenerBuilder reqBuilder = new ServletRequestListenerBuilder<>(ResinConstants.RESIN, traceContext, requestAdaptor); reqBuilder.setExcludeURLFilter(config.getExcludeUrlFilter()); + reqBuilder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); reqBuilder.setParameterRecorder(parameterRecorder); reqBuilder.setRequestRecorderFactory(requestRecorderFactory); diff --git a/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/TomcatConfig.java b/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/TomcatConfig.java index 8a5a457364c4f..c6c751f0610fa 100644 --- a/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/TomcatConfig.java +++ b/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/TomcatConfig.java @@ -35,6 +35,7 @@ public class TomcatConfig { private final boolean traceRequestParam; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final String realIpHeader; private final String realIpEmptyValue; private final Filter excludeProfileMethodFilter; @@ -54,6 +55,7 @@ public TomcatConfig(ProfilerConfig config) { this.hidePinpointHeader = serverConfig.isHidePinpointHeader("profiler.tomcat.hidepinpointheader"); this.traceRequestParam = serverConfig.isTraceRequestParam("profiler.tomcat.tracerequestparam"); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.tomcat.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.tomcat.trace.excludemethod"); this.realIpHeader = serverConfig.getRealIpHeader("profiler.tomcat.realipheader"); this.realIpEmptyValue = serverConfig.getRealIpEmptyValue("profiler.tomcat.realipemptyvalue"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.tomcat.excludemethod"); @@ -83,6 +85,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public String getRealIpHeader() { return realIpHeader; } @@ -115,6 +121,7 @@ public String toString() { sb.append(", hidePinpointHeader=").append(hidePinpointHeader); sb.append(", traceRequestParam=").append(traceRequestParam); sb.append(", excludeUrlFilter=").append(excludeUrlFilter); + sb.append(", traceExcludeMethodFilter=").append(traceExcludeMethodFilter); sb.append(", realIpHeader='").append(realIpHeader).append('\''); sb.append(", realIpEmptyValue='").append(realIpEmptyValue).append('\''); sb.append(", excludeProfileMethodFilter=").append(excludeProfileMethodFilter); diff --git a/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/jakarta/interceptor/StandardHostValveInvokeInterceptor.java b/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/jakarta/interceptor/StandardHostValveInvokeInterceptor.java index e7c04ac946a5d..f0157f461484f 100644 --- a/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/jakarta/interceptor/StandardHostValveInvokeInterceptor.java +++ b/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/jakarta/interceptor/StandardHostValveInvokeInterceptor.java @@ -82,6 +82,7 @@ public StandardHostValveInvokeInterceptor(TraceContext traceContext, MethodDescr ServletRequestListenerBuilder reqBuilder = new ServletRequestListenerBuilder<>(TomcatConstants.TOMCAT, traceContext, requestAdaptor); reqBuilder.setExcludeURLFilter(config.getExcludeUrlFilter()); + reqBuilder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); reqBuilder.setParameterRecorder(parameterRecorder); reqBuilder.setRequestRecorderFactory(requestRecorderFactory); diff --git a/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/javax/interceptor/StandardHostValveInvokeInterceptor.java b/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/javax/interceptor/StandardHostValveInvokeInterceptor.java index 02aa2d8025828..8b9bd5d32fa60 100644 --- a/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/javax/interceptor/StandardHostValveInvokeInterceptor.java +++ b/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/javax/interceptor/StandardHostValveInvokeInterceptor.java @@ -84,6 +84,7 @@ public StandardHostValveInvokeInterceptor(TraceContext traceContext, MethodDescr ServletRequestListenerBuilder reqBuilder = new ServletRequestListenerBuilder<>(TomcatConstants.TOMCAT, traceContext, requestAdaptor); reqBuilder.setExcludeURLFilter(config.getExcludeUrlFilter()); + reqBuilder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); reqBuilder.setParameterRecorder(parameterRecorder); reqBuilder.setRequestRecorderFactory(requestRecorderFactory); diff --git a/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/UndertowConfig.java b/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/UndertowConfig.java index b76d4a1552ff0..04f0daed09f3e 100644 --- a/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/UndertowConfig.java +++ b/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/UndertowConfig.java @@ -34,6 +34,7 @@ public class UndertowConfig { private final boolean hidePinpointHeader; private final boolean traceRequestParam; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final String realIpHeader; private final String realIpEmptyValue; private final Filter excludeProfileMethodFilter; @@ -52,6 +53,7 @@ public UndertowConfig(ProfilerConfig config) { this.hidePinpointHeader = serverConfig.isHidePinpointHeader("profiler.undertow.hidepinpointheader"); this.traceRequestParam = serverConfig.isTraceRequestParam("profiler.undertow.tracerequestparam"); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.undertow.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.undertow.trace.excludemethod"); this.realIpHeader = serverConfig.getRealIpHeader("profiler.undertow.realipheader"); this.realIpEmptyValue = serverConfig.getRealIpEmptyValue("profiler.undertow.realipemptyvalue"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.undertow.excludemethod"); @@ -93,6 +95,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public String getRealIpHeader() { return realIpHeader; } @@ -117,6 +123,7 @@ public String toString() { sb.append(", hidePinpointHeader=").append(hidePinpointHeader); sb.append(", traceRequestParam=").append(traceRequestParam); sb.append(", excludeUrlFilter=").append(excludeUrlFilter); + sb.append(", traceExcludeMethodFilter=").append(traceExcludeMethodFilter); sb.append(", realIpHeader='").append(realIpHeader).append('\''); sb.append(", realIpEmptyValue='").append(realIpEmptyValue).append('\''); sb.append(", excludeProfileMethodFilter=").append(excludeProfileMethodFilter); diff --git a/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/interceptor/ConnectorsExecuteRootHandlerInterceptor.java b/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/interceptor/ConnectorsExecuteRootHandlerInterceptor.java index b9240659ea46d..f722bbeb62955 100644 --- a/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/interceptor/ConnectorsExecuteRootHandlerInterceptor.java +++ b/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/interceptor/ConnectorsExecuteRootHandlerInterceptor.java @@ -66,6 +66,7 @@ public ConnectorsExecuteRootHandlerInterceptor(TraceContext traceContext, Method ServletRequestListenerBuilder reqBuilder = new ServletRequestListenerBuilder<>(UndertowConstants.UNDERTOW, traceContext, requestAdaptor); reqBuilder.setExcludeURLFilter(config.getExcludeUrlFilter()); + reqBuilder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); reqBuilder.setParameterRecorder(parameterRecorder); reqBuilder.setRequestRecorderFactory(requestRecorderFactory); diff --git a/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/interceptor/HttpServerExchangeAdaptor.java b/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/interceptor/HttpServerExchangeAdaptor.java index e511e77fb9f67..ba175003b6b21 100644 --- a/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/interceptor/HttpServerExchangeAdaptor.java +++ b/plugins/undertow/src/main/java/com/navercorp/pinpoint/plugin/undertow/interceptor/HttpServerExchangeAdaptor.java @@ -72,6 +72,11 @@ public String getRpcName(HttpServerExchange request) { return request.getRequestURI(); } + @Override + public String getMethodName(HttpServerExchange request) { + return request.getRequestMethod().toString(); + } + @Override public String getEndPoint(HttpServerExchange request) { final InetSocketAddress address = request.getDestinationAddress(); diff --git a/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/VertxHttpServerConfig.java b/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/VertxHttpServerConfig.java index 3f130511aa4f7..f8db8dddee5e0 100644 --- a/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/VertxHttpServerConfig.java +++ b/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/VertxHttpServerConfig.java @@ -28,6 +28,7 @@ public class VertxHttpServerConfig { // server private final boolean traceRequestParam; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final String realIpHeader; private final String realIpEmptyValue; private final Filter excludeProfileMethodFilter; @@ -42,6 +43,7 @@ public VertxHttpServerConfig(ProfilerConfig config) { final ServerConfig serverConfig = new ServerConfig(config); this.traceRequestParam = serverConfig.isTraceRequestParam("profiler.vertx.http.server.tracerequestparam"); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.vertx.http.server.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.vertx.http.server.trace.excludemethod"); this.realIpHeader = serverConfig.getRealIpHeader("profiler.vertx.http.server.realipheader"); this.realIpEmptyValue = serverConfig.getRealIpEmptyValue("profiler.vertx.http.server.realipemptyvalue"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.vertx.http.server.excludemethod"); @@ -56,6 +58,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public String getRealIpHeader() { return realIpHeader; } diff --git a/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/interceptor/HttpServerRequestAdaptor.java b/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/interceptor/HttpServerRequestAdaptor.java index f188e4228ea01..6e46e5a7a24e3 100644 --- a/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/interceptor/HttpServerRequestAdaptor.java +++ b/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/interceptor/HttpServerRequestAdaptor.java @@ -50,6 +50,11 @@ public String getRpcName(HttpServerRequest request) { return request.path(); } + @Override + public String getMethodName(HttpServerRequest request) { + return request.method().name(); + } + @Override public String getEndPoint(HttpServerRequest request) { if (request.localAddress() != null) { diff --git a/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/interceptor/ServerConnectionHandleRequestInterceptor.java b/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/interceptor/ServerConnectionHandleRequestInterceptor.java index bec328a358912..981c3957cc748 100644 --- a/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/interceptor/ServerConnectionHandleRequestInterceptor.java +++ b/plugins/vertx/src/main/java/com/navercorp/pinpoint/plugin/vertx/interceptor/ServerConnectionHandleRequestInterceptor.java @@ -59,6 +59,7 @@ public class ServerConnectionHandleRequestInterceptor implements AroundIntercept private final boolean isTrace = logger.isTraceEnabled(); private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final ProxyRequestRecorder proxyRequestRecorder; private final VertxHttpHeaderFilter httpHeaderFilter; @@ -79,6 +80,7 @@ public ServerConnectionHandleRequestInterceptor(final TraceContext traceContext, final VertxHttpServerConfig config = new VertxHttpServerConfig(traceContext.getProfilerConfig()); this.excludeUrlFilter = config.getExcludeUrlFilter(); + this.traceExcludeMethodFilter = config.getTraceExcludeMethodFilter(); RequestAdaptor requestAdaptor = new HttpServerRequestAdaptor(); requestAdaptor = RemoteAddressResolverFactory.wrapRealIpSupport(requestAdaptor, config.getRealIpHeader(), config.getRealIpEmptyValue()); @@ -226,6 +228,15 @@ private Trace createTrace(final HttpServerRequest request) { return null; } + final String methodName = request.method().name(); + if (methodName != null && traceExcludeMethodFilter.filter(methodName)) { + // skip request. + if (isTrace) { + logger.trace("filter methodName:{}", methodName); + } + return null; + } + final Trace trace = this.requestTraceReader.read(request); if (trace.canSampled()) { final SpanRecorder recorder = trace.getSpanRecorder(); diff --git a/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/WeblogicConfiguration.java b/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/WeblogicConfiguration.java index a8b99d735a413..f06dba92bd7c5 100644 --- a/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/WeblogicConfiguration.java +++ b/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/WeblogicConfiguration.java @@ -15,12 +15,12 @@ */ package com.navercorp.pinpoint.plugin.weblogic; -import java.util.List; - import com.navercorp.pinpoint.bootstrap.config.Filter; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; import com.navercorp.pinpoint.bootstrap.config.ServerConfig; +import java.util.List; + /** * @author andyspan * @author jaehong.kim @@ -29,6 +29,7 @@ public class WeblogicConfiguration { private final boolean enable; private final List bootstrapMains; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final Filter excludeProfileMethodFilter; private final String realIpHeader; private final String realIpEmptyValue; @@ -41,6 +42,7 @@ public WeblogicConfiguration(ProfilerConfig config) { // Server final ServerConfig serverConfig = new ServerConfig(config); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.weblogic.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.weblogic.trace.excludemethod"); this.realIpHeader = serverConfig.getRealIpHeader("profiler.weblogic.realipheader"); this.realIpEmptyValue = serverConfig.getRealIpEmptyValue("profiler.weblogic.realipemptyvalue"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.weblogic.excludemethod"); @@ -52,6 +54,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public boolean isEnable() { return enable; } @@ -86,10 +92,11 @@ public boolean isHidePinpointHeader() { @Override public String toString() { - final StringBuilder sb = new StringBuilder("WeblogicConfiguration{"); + final StringBuilder sb = new StringBuilder("WebLogicConfiguration{"); sb.append("enable=").append(enable); sb.append(", bootstrapMains=").append(bootstrapMains); sb.append(", excludeUrlFilter=").append(excludeUrlFilter); + sb.append(", traceExcludeMethodFilter=").append(traceExcludeMethodFilter); sb.append(", excludeProfileMethodFilter=").append(excludeProfileMethodFilter); sb.append(", realIpHeader='").append(realIpHeader).append('\''); sb.append(", realIpEmptyValue='").append(realIpEmptyValue).append('\''); diff --git a/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/interceptor/ServletRequestImplAdaptor.java b/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/interceptor/ServletRequestImplAdaptor.java index 7af6830bd37c0..28b85e88bd861 100644 --- a/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/interceptor/ServletRequestImplAdaptor.java +++ b/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/interceptor/ServletRequestImplAdaptor.java @@ -44,6 +44,11 @@ public String getRpcName(ServletRequestImpl request) { return request.getRequestURI(); } + @Override + public String getMethodName(ServletRequestImpl request) { + return request.getMethod(); + } + @Override public String getEndPoint(ServletRequestImpl request) { final int port = request.getServerPort(); diff --git a/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/interceptor/WebAppServletContextExecuteInterceptor.java b/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/interceptor/WebAppServletContextExecuteInterceptor.java index f3b2b37188dd4..bb29509615569 100644 --- a/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/interceptor/WebAppServletContextExecuteInterceptor.java +++ b/plugins/weblogic/src/main/java/com/navercorp/pinpoint/plugin/weblogic/interceptor/WebAppServletContextExecuteInterceptor.java @@ -57,6 +57,7 @@ public WebAppServletContextExecuteInterceptor(TraceContext traceContext, MethodD ServletRequestListenerBuilder builder = new ServletRequestListenerBuilder<>(WeblogicConstants.WEBLOGIC, traceContext, requestAdaptor); builder.setExcludeURLFilter(config.getExcludeUrlFilter()); + builder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); builder.setParameterRecorder(parameterRecorder); builder.setRequestRecorderFactory(requestRecorderFactory); diff --git a/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/WebsphereConfiguration.java b/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/WebsphereConfiguration.java index 26f3148655d00..d18a6b3a2de89 100644 --- a/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/WebsphereConfiguration.java +++ b/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/WebsphereConfiguration.java @@ -17,9 +17,9 @@ import com.navercorp.pinpoint.bootstrap.config.Filter; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; import com.navercorp.pinpoint.bootstrap.config.ServerConfig; -import java.util.Objects; import java.util.List; +import java.util.Objects; /** * @author sjmittal @@ -35,6 +35,7 @@ public class WebsphereConfiguration { private final String realIpEmptyValue; private final Filter excludeUrlFilter; + private final Filter traceExcludeMethodFilter; private final Filter excludeProfileMethodFilter; private final boolean hidePinpointHeader; @@ -50,6 +51,7 @@ public WebsphereConfiguration(ProfilerConfig config) { this.realIpHeader = serverConfig.getRealIpHeader("profiler.websphere.realipheader"); this.realIpEmptyValue = serverConfig.getRealIpEmptyValue("profiler.websphere.realipemptyvalue"); this.excludeUrlFilter = serverConfig.getExcludeUrlFilter("profiler.websphere.excludeurl"); + this.traceExcludeMethodFilter = serverConfig.getTraceExcludeMethodFilter("profiler.websphere.trace.excludemethod"); this.excludeProfileMethodFilter = serverConfig.getExcludeMethodFilter("profiler.websphere.excludemethod"); this.hidePinpointHeader = serverConfig.isHidePinpointHeader("profiler.websphere.hidepinpointheader"); } @@ -82,6 +84,10 @@ public Filter getExcludeUrlFilter() { return excludeUrlFilter; } + public Filter getTraceExcludeMethodFilter() { + return traceExcludeMethodFilter; + } + public boolean isHidePinpointHeader() { return hidePinpointHeader; } @@ -95,6 +101,7 @@ public String toString() { sb.append(", realIpHeader='").append(realIpHeader).append('\''); sb.append(", realIpEmptyValue='").append(realIpEmptyValue).append('\''); sb.append(", excludeUrlFilter=").append(excludeUrlFilter); + sb.append(", traceExcludeMethodFilter=").append(traceExcludeMethodFilter); sb.append(", excludeProfileMethodFilter=").append(excludeProfileMethodFilter); sb.append(", hidePinpointHeader=").append(hidePinpointHeader); sb.append('}'); diff --git a/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/interceptor/IRequestAdaptor.java b/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/interceptor/IRequestAdaptor.java index 4091f855a2113..1b69e79bad357 100644 --- a/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/interceptor/IRequestAdaptor.java +++ b/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/interceptor/IRequestAdaptor.java @@ -46,6 +46,11 @@ public String getRpcName(IRequest request) { return request.getRequestURI(); } + @Override + public String getMethodName(IRequest request) { + return request.getMethod(); + } + @Override public String getEndPoint(IRequest request) { final int port = request.getServerPort(); diff --git a/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/interceptor/WebContainerHandleRequestInterceptor.java b/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/interceptor/WebContainerHandleRequestInterceptor.java index 1e0d3f840e790..da94273af2abd 100644 --- a/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/interceptor/WebContainerHandleRequestInterceptor.java +++ b/plugins/websphere/src/main/java/com/navercorp/pinpoint/plugin/websphere/interceptor/WebContainerHandleRequestInterceptor.java @@ -61,6 +61,7 @@ public WebContainerHandleRequestInterceptor(TraceContext traceContext, MethodDes ServletRequestListenerBuilder builder = new ServletRequestListenerBuilder<>(WebsphereConstants.WEBSPHERE, traceContext, requestAdaptor); builder.setExcludeURLFilter(config.getExcludeUrlFilter()); + builder.setTraceExcludeMethodFilter(config.getTraceExcludeMethodFilter()); builder.setParameterRecorder(parameterRecorder); builder.setRequestRecorderFactory(requestRecorderFactory);