opentelemetry-java-instrume.../examples/spring-boot-jdbc-redis/README.md

2.0 KiB

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 and a Redis instance as follows:

cd examples/spring-boot-jdbc-redis
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 :examples:spring-boot-jdbc-redis:bootRun task until you stop it.

Or as an executable jar:

java -javaagent:../../dd-java-agent/build/libs/dd-java-agent-{version}.jar -Ddd.service.name=spring-boot-jdbc-redis -jar build/libs/spring-boot-jdbc-redis-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 Jedis Redis client

The Java Agent embeds the OpenTracing Java Agent.