JFR JDBC  
  
 
 
A JDBC driver that wraps an other JDBC driver and generates JFR events.
<dependency>
  <groupId>com.github.marschall</groupId>
  <artifactId>jfr-jdbc</artifactId>
  <version>0.4.0</version>
</dependency> 
Usage
Simply wrap your DataSource with a JfrDataSource
new JfrDataSource(dataSource) 
If you use Driver simply prefix your JDBC URL with "jfr:" for example use "jdbc:jfr:h2:mem:" instead of "jdbc:h2:mem:".
The project is a Java module with the name com.github.marschall.jfr.jdbc.
Implementation/Overhead
The implementation is based around wrapper objects.
- no reflection
- no string concatenation
Caveats
- does not work with Oracle explicit statement caching
- does not work with unwrapped objects
- does not work with implicitly closed objects
- does not work with cached statements provided by a connection pool
- only accessing the first warning is instrumented, accessing the following ones is not
- reconstructing the JDBC call time and row count is not super reliable especially in the case for more exotic row iteration
 JarCasting
 JarCasting