Skip to main content
Beta: LLM Observability is now GA

Java Monitoring

Java and JVM monitoring
with one agent flag.

Attach the OpenTelemetry Java agent and Spring Boot controllers, JDBC queries, Kafka producers and outbound HTTP calls are traced from the first request. JVM memory, garbage collection and thread metrics come with it.

What you see

Traces, metrics and logs from Java

The OpenTelemetry Java agent loads with -javaagent and instruments bytecode at startup.

Distributed traces

Controllers, queries, messaging and HTTP clients as spans, without touching your code.

JVM metrics

Heap and non-heap memory, garbage collection, threads and class loading.

Correlated logs

Log4j and Logback records are enriched with trace and span IDs.

Frameworks and libraries

Each of these has official OpenTelemetry instrumentation. aiAxonIQ receives it over OTLP, so anything the OpenTelemetry project adds for Java works here too.

  • Spring Boot
  • Spring MVC
  • Spring WebFlux
  • Jakarta Servlet
  • JDBC
  • Hibernate
  • Kafka clients
  • gRPC
  • OkHttp
  • Apache HttpClient
  • Redis (Jedis, Lettuce)
  • Log4j / Logback

Set up

Send Java telemetry in three steps

The full guide, including sampling and resource attributes, is in the documentation.

  1. 1Download the agent

    curl -L -O https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar
  2. 2Configure

    export OTEL_EXPORTER_OTLP_ENDPOINT="https://app.aiaxoniq.com/otlp"
    export OTEL_EXPORTER_OTLP_HEADERS="x-license-key=YOUR_LICENSE_KEY"
    export OTEL_SERVICE_NAME="my-service"
  3. 3Run

    java -javaagent:./opentelemetry-javaagent.jar -jar your-app.jar

How the data flows

  1. 1. Instrument. The OpenTelemetry SDK for Java records spans, metrics and logs in your process.
  2. 2. Export. It sends them over OTLP, straight to aiAxonIQ or through an OpenTelemetry Collector you already run.
  3. 3. Explore. Traces, metrics and logs land in one store, so a slow request opens onto its queries and its log lines.

Because the wire format is OTLP, the same instrumentation works with any OpenTelemetry backend. Moving to aiAxonIQ, or away from it, is an endpoint change.

Java questions

Does it work with Kotlin and Scala?
Yes. The agent instruments JVM bytecode, so services written in Kotlin, Scala or any other JVM language are covered by the same flag.
Can I turn off an instrumentation I do not want?
Yes. Each instrumentation has a switch, OTEL_INSTRUMENTATION_<NAME>_ENABLED=false, so you can drop a noisy library without removing the agent.