The entry point to ExplorViz that validates and preprocesses all incoming raw spans.
At its core, the Adapter-Service is a Kafka Streams application that steadily processes every span emitted by a monitored application. All monitoring data of a instrumented application is sent by a monitoring agent (like InspectIT Ocelot Agent) via gRPC to the OpenTelemetry Collector, which in turn forwards all spans to this service via Kafka. In essence, the Adapter-Service performs input validation on each span.
Input Validation: If any non-optional attribute is missing or invalid, the attribute is added or the span is discarded. This step is essential as all downstream services assume that incoming data is syntactically valid. They are subsequently procesed by the ExplorViz/span-service.
- Java 21 (at least Java 11)
- Make sure to run the ExplorViz software stack before starting the service, as it provides the required database(s) and the Kafka broker
You can run your application in dev mode that enables live coding using:
./gradlew quarkusDev
This also enables the dev
configuration profile, i.e. using the properties prefixed with %dev
from
src/main/resources/application.properties
.
- Check code style:
./gradlew detekt
- Check code formatting:
./gradlew spotlessCheck
- Apply code formatting:
./gradlew spotlessApply
The application can be packaged and tested using:
./gradlew build
It produces the quarkus-run.jar
file in the build/quarkus-app/
directory.
You can skip running the integration tests by adding -x integrationTest
. To skip all tests and
code analysis use the assemble
task
instead of build
.
The application is now runnable using java -jar build/quarkus-app/quarkus-run.jar
.
Be aware that it’s not an über-jar as the dependencies are copied into
the build/quarkus-app/lib/
directory.
If you want to build an über-jar, which includes the entire application in a single jar file, execute the following command:
./gradlew build -Dquarkus.package.type=uber-jar
The application, packaged as an über-jar, is now runnable using
java -jar build/adapter-service-1.0-runner.jar
.
You can add -Dquarkus.profile=dev
to enable the %dev
properties.
You can create a native executable using:
./gradlew build -Dquarkus.package.type=native
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true
You can then execute your native executable with: ./build/adapter-service-1.0-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/gradle-tooling#building-a-native-executable.