From d4c51648092832b86bb7b1429f65e08459c31902 Mon Sep 17 00:00:00 2001 From: Mateusz Rzeszutek Date: Thu, 11 May 2023 10:10:51 +0200 Subject: [PATCH] Add classLoaderMatcher() for Spring WebMVC instrumentations (#8463) --- .../webmvc/v3_1/SpringWebMvcInstrumentationModule.java | 8 ++++++++ .../webmvc/v6_0/SpringWebMvcInstrumentationModule.java | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v3_1/SpringWebMvcInstrumentationModule.java b/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v3_1/SpringWebMvcInstrumentationModule.java index a9f6c44572..5b4064257e 100644 --- a/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v3_1/SpringWebMvcInstrumentationModule.java +++ b/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v3_1/SpringWebMvcInstrumentationModule.java @@ -5,19 +5,27 @@ package io.opentelemetry.javaagent.instrumentation.spring.webmvc.v3_1; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Arrays.asList; import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) public class SpringWebMvcInstrumentationModule extends InstrumentationModule { + public SpringWebMvcInstrumentationModule() { super("spring-webmvc", "spring-webmvc-3.1"); } + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed("javax.servlet.Filter"); + } + @Override public boolean isHelperClass(String className) { return className.startsWith( diff --git a/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v6_0/SpringWebMvcInstrumentationModule.java b/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v6_0/SpringWebMvcInstrumentationModule.java index 18bdf2b1d4..fe2d889389 100644 --- a/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v6_0/SpringWebMvcInstrumentationModule.java +++ b/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v6_0/SpringWebMvcInstrumentationModule.java @@ -5,19 +5,27 @@ package io.opentelemetry.javaagent.instrumentation.spring.webmvc.v6_0; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Arrays.asList; import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) public class SpringWebMvcInstrumentationModule extends InstrumentationModule { + public SpringWebMvcInstrumentationModule() { super("spring-webmvc", "spring-webmvc-6.0"); } + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed("jakarta.servlet.Filter"); + } + @Override public boolean isHelperClass(String className) { return className.startsWith(