Skip to content

Commit 2490a17

Browse files
authored
Apply external annotation instrumentation only to methods (open-telemetry#13948)
1 parent 86c46a2 commit 2490a17

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

instrumentation/external-annotations/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/extannotations/ExternalAnnotationInstrumentation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
1212
import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith;
1313
import static net.bytebuddy.matcher.ElementMatchers.isDeclaredBy;
14+
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
1415
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
1516
import static net.bytebuddy.matcher.ElementMatchers.none;
1617
import static net.bytebuddy.matcher.ElementMatchers.not;
@@ -109,7 +110,7 @@ public ElementMatcher<TypeDescription> typeMatcher() {
109110
@Override
110111
public void transform(TypeTransformer transformer) {
111112
transformer.applyAdviceToMethod(
112-
isAnnotatedWith(traceAnnotationMatcher).and(not(excludedMethodsMatcher)),
113+
isAnnotatedWith(traceAnnotationMatcher).and(not(excludedMethodsMatcher)).and(isMethod()),
113114
ExternalAnnotationInstrumentation.class.getName() + "$ExternalAnnotationAdvice");
114115
}
115116

instrumentation/external-annotations/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/extannotations/SayTracedHello.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
@SuppressWarnings("UnnecessarilyFullyQualified")
1313
public class SayTracedHello {
1414

15+
public SayTracedHello() {}
16+
17+
// used to verify that constructor with tracing annotation doesn't break instrumentation
18+
@com.appoptics.api.ext.LogMethod
19+
public SayTracedHello(String unused) {}
20+
1521
@com.appoptics.api.ext.LogMethod
1622
public String appoptics() {
1723
Span.current().setAttribute("providerAttr", "AppOptics");

0 commit comments

Comments
 (0)