From 188d4c249aadae61c8a1e56e850178cdbb0e1ca3 Mon Sep 17 00:00:00 2001 From: Mateusz Rzeszutek Date: Mon, 12 Jun 2023 10:01:29 +0200 Subject: [PATCH] Only instrument the actual Spring `TaskScheduler` implementations (#8676) --- .../scheduling/v3_1/TaskSchedulerInstrumentation.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/instrumentation/spring/spring-scheduling-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/scheduling/v3_1/TaskSchedulerInstrumentation.java b/instrumentation/spring/spring-scheduling-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/scheduling/v3_1/TaskSchedulerInstrumentation.java index 6afedd9cee..532f202926 100644 --- a/instrumentation/spring/spring-scheduling-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/scheduling/v3_1/TaskSchedulerInstrumentation.java +++ b/instrumentation/spring/spring-scheduling-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/scheduling/v3_1/TaskSchedulerInstrumentation.java @@ -5,7 +5,6 @@ package io.opentelemetry.javaagent.instrumentation.spring.scheduling.v3_1; -import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; @@ -20,7 +19,12 @@ import net.bytebuddy.matcher.ElementMatcher; public class TaskSchedulerInstrumentation implements TypeInstrumentation { @Override public ElementMatcher typeMatcher() { - return implementsInterface(named("org.springframework.scheduling.TaskScheduler")); + // we're only instrumenting the "real" scheduler implementations, and skipping all the decorator + // impls + return namedOneOf( + "org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler", + "org.springframework.scheduling.concurrent.ConcurrentTaskScheduler", + "org.springframework.scheduling.commonj.TimerManagerTaskScheduler"); } @Override