JDBC Instrumentation

Learn how to capture tracing information from database queries executed with JDBC.

Capturing transactions requires that you first set up tracing if you haven't already.

Sentry JDBC integration provides the SentryJdbcEventListener for P6Spy database activity interceptor, which creates a span for each JDBC statement executed over a proxied instance of javax.sql.DataSource.

Copied
<dependency>
    <groupId>io.sentry</groupId>
    <artifactId>sentry-jdbc</artifactId>
    <version>7.17.0</version>
</dependency>

For other dependency managers, check out the central Maven repository.

Configure the DataSource to use com.p6spy.engine.spy.P6SpyDriver as a JDBC driver. For Spring Boot applications:

Copied
spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver

Add the p6spy prefix to the database connection URL. For Spring Boot applications:

Copied
spring.datasource.url: jdbc:p6spy:postgresql://localhost:5432/db

P6Spy uses a Java Service Loader mechanism to register JdbcEventListeners. For more configuration options, check the P6Spy Reference Guide.

In addition to spans, P6Spy logs JDBC statements to a log file by default. Because this file can grow rapidly, we recommend disabling creating a log file by setting a system property p6spy.config.modulelist to com.p6spy.engine.spy.P6SpyFactory or creating a spy.properties file in src/main/resources with the content:

Copied
modulelist=com.p6spy.engine.spy.P6SpyFactory
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").