This instrumentation creates spans for Statements and PreparedStatements. It also captures the corresponding SQL and additional connection info. ResultSet could be considered for future instrumentation to capture even more of the DB interaction time. This integration uses Bytebuddy instead of Byteman as the many methods to instrument would have been messy in Byteman. |
||
---|---|---|
.. | ||
gradle/wrapper | ||
src/main | ||
README.md | ||
docker-compose.yml | ||
gradlew | ||
gradlew.bat | ||
spring-boot-jdbc.gradle |
README.md
Spring-boot
This project provides a simple API using Spring Boot. The framework is supported and auto-instrumentation is used to trace the endpoints.
Run the demo
Prerequisites
Be sure to build the project so that the latest version of dd-trace-java
components are used. You can build
all libraries and examples launching from the dd-trace-java
root folder:
./gradlew clean shadowJar bootRepackage
Then you can launch the Datadog agent as follows:
cd dd-trace-examples/spring-boot-jdbc
DD_API_KEY=<your_datadog_api_key> docker-compose up -d
A valid DD_API_KEY
is required to post collected traces to the Datadog backend.
Run the application
To launch the application, just:
./gradlew bootRun
Note: The bootRun
Gradle command appends automatically the -javaagent
argument, so that you don't need to specify
the path of the Java Agent. Gradle executes the :dd-trace-examples:spring-boot-jdbc:bootRun
task until you
stop it.
Or as an executable jar:
java -javaagent:../../dd-java-agent/build/libs/dd-java-agent-{version}.jar -jar build/libs/spring-boot-jdbc-demo.jar
Generate traces
Once the Gradle task is running. Go to the following urls:
Then get back to Datadog and wait a bit to see a trace coming.
Auto-instrumentation with the dd-trace-agent
The instrumentation is entirely done by the datadog agent which embed a set of rules that automatically recognizes & instruments:
- The java servlet filters
- The JDBC driver
The Java Agent embeds the OpenTracing Java Agent.