Splunk AppDynamics

Spring Data no JDBC calls captured

CommunityUser
Splunk Employee
Splunk Employee

Hello,

I am setting up AppD on my fairly-vanilla Spring app, and it's not showing any DB calls on any of my transactions:

  • Spring Boot 1.5.3
  • Spring Data JPA
  • Spring Data REST
  • PostgreSQL
  • running in GKE/K8S using Google Cloud SQL Postgres

I checked the Bytecode transformer logs, and it's happily finding the classes: 

[main] 11 Apr 2018 21:39:00,175  INFO - 		Applying method interceptor exit.jdbc.Connect at org/postgresql/Driver.connect ((Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;) id:597

But no DB calls are detected in any of my traces, neither reads nor writes.

Anything obvious I could be missing? 

Thanks!

Labels (1)
0 Karma
1 Solution

Peter_Holditch
Builder

Josh,

The fact that you see the Connect instrumentation applied is encouraging!  Do you also see instrumentation applied for callable statements, prepared statements etc.?

If not, you may be using a version of the Postgres jdbc driver that is not covered by the out of the box agent configuration.  In this case, you can configure the implementation classes to to picked up using the relevant jdbc-* agent properties.

If it happens that you're using v9.4+ of the Postgres driver, the settings should be:

jdbc-statements: value="org.postgresql.jdbc.PgStatement"
jdbc-connections: value="org.postgresql.jdbc.PgConnection"
jdbc-prepared-statements: value="org.postgresql.jdbc.PgPreparedStatement"
jdbc-callable-statements: value="org.postgresql.jdbc.PgCallableStatement"

If this isn't the issue, then another possibility is that the jdbc activity is happening on a thread that has not been tracked by the agent.  You can tell if this is the case using the uninstrumented code detection feature, and configure the missing thread handoffs in the agent's fork-config configuration, or the thread-correlation-classes agent property.

Warm regards,

Peter.

View solution in original post

0 Karma

Peter_Holditch
Builder

Josh,

The fact that you see the Connect instrumentation applied is encouraging!  Do you also see instrumentation applied for callable statements, prepared statements etc.?

If not, you may be using a version of the Postgres jdbc driver that is not covered by the out of the box agent configuration.  In this case, you can configure the implementation classes to to picked up using the relevant jdbc-* agent properties.

If it happens that you're using v9.4+ of the Postgres driver, the settings should be:

jdbc-statements: value="org.postgresql.jdbc.PgStatement"
jdbc-connections: value="org.postgresql.jdbc.PgConnection"
jdbc-prepared-statements: value="org.postgresql.jdbc.PgPreparedStatement"
jdbc-callable-statements: value="org.postgresql.jdbc.PgCallableStatement"

If this isn't the issue, then another possibility is that the jdbc activity is happening on a thread that has not been tracked by the agent.  You can tell if this is the case using the uninstrumented code detection feature, and configure the missing thread handoffs in the agent's fork-config configuration, or the thread-correlation-classes agent property.

Warm regards,

Peter.

0 Karma

CommunityUser
Splunk Employee
Splunk Employee

manually setting those node properties got everything working, thanks! (though you may want to fix the auto-detection)

0 Karma
Get Updates on the Splunk Community!

Splunk AI Assistant for SPL | Key Use Cases to Unlock the Power of SPL

Splunk AI Assistant for SPL | Key Use Cases to Unlock the Power of SPL  The Splunk AI Assistant for SPL ...

Buttercup Games: Further Dashboarding Techniques (Part 5)

This series of blogs assumes you have already completed the Splunk Enterprise Search Tutorial as it uses the ...

Customers Increasingly Choose Splunk for Observability

For the second year in a row, Splunk was recognized as a Leader in the 2024 Gartner® Magic Quadrant™ for ...