Distributed tracing demo with OpenTelemetry.
The project consists of a data provider which generates random data using the Datafaker library before being publishing to a Kafka topic every 2 seconds. Topics are then consumed by the receiver, persisted, and logged to the console.
There are also a couple of REST endpoints for retrieving stored Pokémon sightings from the database.
Traces are automatically added to Kafka clients and REST API by Quarkus and OpenTelemetry. Traces for database transactions are added by wrapping the datasource in a special OpenTelemetry datasource tracing wrapper as described here.
# Run Jaeger, OTEL Collector, and MySQL
docker-compose -f dev-services/docker-compose up -d
# Build and install shared message type
mvn -f message-data-type/pom.xml clean install
# Start Pokemon sighting application
mvn -f pokemon-sightings/pom.xml quarkus:dev
# Start data provider
mvn -f data-provider/pom.xml quarkus:dev
Visit http://localhost:16686/search to check out the collected traces in Jaeger.