Move WithSpan class presence check to instrumentation module (#8389)

This commit is contained in:
Lauri Tulmin 2023-04-28 15:47:50 +03:00 committed by GitHub
parent d0ee3da709
commit 90e21aaf9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 6 deletions

View File

@ -5,6 +5,7 @@
package io.opentelemetry.javaagent.instrumentation.instrumentationannotations;
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
import static java.util.Arrays.asList;
import application.io.opentelemetry.instrumentation.annotations.AddingSpanAttributes;
@ -13,6 +14,7 @@ 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;
/**
* Instrumentation for methods annotated with {@link WithSpan} and {@link AddingSpanAttributes}
@ -32,6 +34,11 @@ public class AnnotationInstrumentationModule extends InstrumentationModule {
return -1000;
}
@Override
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
return hasClassesNamed("application.io.opentelemetry.instrumentation.annotations.WithSpan");
}
@Override
public List<TypeInstrumentation> typeInstrumentations() {
return asList(new WithSpanInstrumentation(), new AddingSpanAttributesInstrumentation());

View File

@ -5,7 +5,6 @@
package io.opentelemetry.javaagent.instrumentation.instrumentationannotations;
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
import static io.opentelemetry.javaagent.instrumentation.instrumentationannotations.AnnotationSingletons.instrumenter;
import static io.opentelemetry.javaagent.instrumentation.instrumentationannotations.AnnotationSingletons.instrumenterWithAttributes;
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
@ -49,11 +48,6 @@ public class WithSpanInstrumentation implements TypeInstrumentation {
excludedMethodsMatcher = AnnotationExcludedMethods.configureExcludedMethods();
}
@Override
public ElementMatcher<ClassLoader> classLoaderOptimization() {
return hasClassesNamed("application.io.opentelemetry.instrumentation.annotations.WithSpan");
}
@Override
public ElementMatcher<TypeDescription> typeMatcher() {
return declaresMethod(annotatedMethodMatcher);