Skip to content

Commit b558c50

Browse files
richardstartintrask
authored andcommitted
Add missing classloader matchers for expensive matchers (DataDog/dd-trace-java#1617)
1 parent de1aa4b commit b558c50

File tree

5 files changed

+30
-0
lines changed

5 files changed

+30
-0
lines changed

instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/ConnectionInstrumentation.java

+6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package io.opentelemetry.auto.instrumentation.jdbc;
1818

19+
import static io.opentelemetry.auto.tooling.ClassLoaderMatcher.hasClassesNamed;
1920
import static io.opentelemetry.auto.tooling.bytebuddy.matcher.AgentElementMatchers.hasInterface;
2021
import static io.opentelemetry.auto.tooling.bytebuddy.matcher.AgentElementMatchers.implementsInterface;
2122
import static java.util.Collections.singletonMap;
@@ -40,6 +41,11 @@ public ConnectionInstrumentation() {
4041
super("jdbc");
4142
}
4243

44+
@Override
45+
public ElementMatcher<ClassLoader> classLoaderMatcher() {
46+
return hasClassesNamed("java.sql.Connection");
47+
}
48+
4349
@Override
4450
public ElementMatcher<TypeDescription> typeMatcher() {
4551
return implementsInterface(named("java.sql.Connection"));

instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/DriverInstrumentation.java

+6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package io.opentelemetry.auto.instrumentation.jdbc;
1818

19+
import static io.opentelemetry.auto.tooling.ClassLoaderMatcher.hasClassesNamed;
1920
import static io.opentelemetry.auto.tooling.bytebuddy.matcher.AgentElementMatchers.implementsInterface;
2021
import static java.util.Collections.singletonMap;
2122
import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith;
@@ -42,6 +43,11 @@ public DriverInstrumentation() {
4243
super("jdbc");
4344
}
4445

46+
@Override
47+
public ElementMatcher<ClassLoader> classLoaderMatcher() {
48+
return hasClassesNamed("java.sql.Driver");
49+
}
50+
4551
@Override
4652
public ElementMatcher<TypeDescription> typeMatcher() {
4753
return implementsInterface(named("java.sql.Driver"));

instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/PreparedStatementInstrumentation.java

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package io.opentelemetry.auto.instrumentation.jdbc;
1818

1919
import static io.opentelemetry.auto.instrumentation.jdbc.JdbcTracer.TRACER;
20+
import static io.opentelemetry.auto.tooling.ClassLoaderMatcher.hasClassesNamed;
2021
import static io.opentelemetry.auto.tooling.bytebuddy.matcher.AgentElementMatchers.implementsInterface;
2122
import static java.util.Collections.singletonMap;
2223
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@@ -43,6 +44,11 @@ public PreparedStatementInstrumentation() {
4344
super("jdbc");
4445
}
4546

47+
@Override
48+
public ElementMatcher<ClassLoader> classLoaderMatcher() {
49+
return hasClassesNamed("java.sql.PreparedStatement");
50+
}
51+
4652
@Override
4753
public ElementMatcher<TypeDescription> typeMatcher() {
4854
return implementsInterface(named("java.sql.PreparedStatement"));

instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/StatementInstrumentation.java

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package io.opentelemetry.auto.instrumentation.jdbc;
1818

1919
import static io.opentelemetry.auto.instrumentation.jdbc.JdbcTracer.TRACER;
20+
import static io.opentelemetry.auto.tooling.ClassLoaderMatcher.hasClassesNamed;
2021
import static io.opentelemetry.auto.tooling.bytebuddy.matcher.AgentElementMatchers.implementsInterface;
2122
import static java.util.Collections.singletonMap;
2223
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@@ -43,6 +44,11 @@ public StatementInstrumentation() {
4344
super("jdbc");
4445
}
4546

47+
@Override
48+
public ElementMatcher<ClassLoader> classLoaderMatcher() {
49+
return hasClassesNamed("java.sql.Statement");
50+
}
51+
4652
@Override
4753
public ElementMatcher<TypeDescription> typeMatcher() {
4854
return implementsInterface(named("java.sql.Statement"));

instrumentation/rediscala-1.8/src/main/java/io/opentelemetry/auto/instrumentation/rediscala/RediscalaInstrumentation.java

+6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import static io.opentelemetry.auto.instrumentation.rediscala.RediscalaClientDecorator.DECORATE;
2020
import static io.opentelemetry.auto.instrumentation.rediscala.RediscalaClientDecorator.TRACER;
21+
import static io.opentelemetry.auto.tooling.ClassLoaderMatcher.hasClassesNamed;
2122
import static io.opentelemetry.auto.tooling.bytebuddy.matcher.AgentElementMatchers.safeHasSuperType;
2223
import static io.opentelemetry.auto.tooling.matcher.NameMatchers.namedOneOf;
2324
import static io.opentelemetry.trace.Span.Kind.CLIENT;
@@ -51,6 +52,11 @@ public RediscalaInstrumentation() {
5152
super("rediscala", "redis");
5253
}
5354

55+
@Override
56+
public ElementMatcher<ClassLoader> classLoaderMatcher() {
57+
return hasClassesNamed("redis.Request");
58+
}
59+
5460
@Override
5561
public ElementMatcher<TypeDescription> typeMatcher() {
5662
return safeHasSuperType(

0 commit comments

Comments
 (0)