diff --git a/instrumentation/jdbc/src/main/java/com/solarwinds/opentelemetry/instrumentation/JdbcConnectionInstrumentation.java b/instrumentation/jdbc/src/main/java/com/solarwinds/opentelemetry/instrumentation/JdbcConnectionInstrumentation.java index 3fc85034..80a20ff5 100644 --- a/instrumentation/jdbc/src/main/java/com/solarwinds/opentelemetry/instrumentation/JdbcConnectionInstrumentation.java +++ b/instrumentation/jdbc/src/main/java/com/solarwinds/opentelemetry/instrumentation/JdbcConnectionInstrumentation.java @@ -73,10 +73,13 @@ public ElementMatcher typeMatcher() { @Override public void transform(TypeTransformer transformer) { transformer.applyAdviceToMethod( - nameStartsWith("prepare") - .and(takesArgument(0, String.class)) - // Also include CallableStatement, which is a subtype of PreparedStatement - .and(returns(implementsInterface(named("java.sql.PreparedStatement")))), + named("prepareCall") + .and(takesArgument(0, String.class).and(takesArgument(1, int.class))) + .and(returns(implementsInterface(named("java.sql.PreparedStatement")))) + .or( + named("prepareStatement") + .and(takesArgument(0, String.class)) + .and(returns(implementsInterface(named("java.sql.PreparedStatement"))))), JdbcConnectionInstrumentation.class.getName() + "$PrepareAdvice"); }