opentelemetry-java-instrume.../dd-trace-examples/rest-spark
Tyler Benson 3bc153241b Abstract core dependencies for central management 2017-09-07 16:38:21 -07:00
..
gradle/wrapper Don’t exclude the wrapper jar 2017-08-01 15:09:51 -07:00
src/main [example] added 404 endpoint to test the rewrite decorator 2017-08-04 12:50:38 +02:00
README.md [example] added 404 endpoint to test the rewrite decorator 2017-08-04 12:50:38 +02:00
docker-compose.yml [example] add Spark framework example (#60) 2017-07-27 21:09:58 +02:00
gradlew [example] add gradle wrapper to rest-spark example 2017-08-01 12:42:22 +02:00
gradlew.bat [example] add gradle wrapper to rest-spark example 2017-08-01 12:42:22 +02:00
rest-spark.gradle Abstract core dependencies for central management 2017-09-07 16:38:21 -07:00

README.md

REST Spark

This project provides a simple REST API using the Spark web framework. Even if the framework is not directly supported, manual instrumentation is used to trace one of the endpoints. A MongoClient is traced so that Mongo calls are part of the Spark trace.

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

Then you can prepare the distributable version of the rest-spark as follows:

cd dd-trace-examples/rest-spark
./gradlew installDist

Then you can start all services via Docker:

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

Launch the application using the run wrapper you've built during the installDist step:

JAVA_OPTS=-javaagent:../../dd-java-agent/build/libs/dd-java-agent-{version}.jar build/install/rest-spark/bin/rest-spark

0.2.0-SNAPSHOT is an example of what {version} looks like.

Generate traces

With your web browser

Once the application runs. Go to the following url:

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 Java Agent which embed a set of rules that automatically recognizes & instruments:

  • The Mongo client

The Java Agent embeds the OpenTracing Java Agent.