Java Integration
JVM metrics, Spring Boot auto-instrumentation, and heap analysis with the TigerOps Java agent. Attach to any JVM process with one startup flag — zero code changes.
How It Works
Download the Java Agent
Download tigerops-agent.jar from the TigerOps dashboard or Maven Central. The agent is a standard Java instrumentation agent — no code changes, no framework dependencies.
Add the -javaagent Flag
Add -javaagent:/path/to/tigerops.jar to your JVM startup arguments. Set TIGEROPS_API_KEY and TIGEROPS_SERVICE_NAME environment variables. That is all that is required.
Auto-Detection Activates
The agent detects Spring Boot, Quarkus, Micronaut, Ktor, and other frameworks automatically. It instruments HTTP endpoints, JDBC queries, gRPC calls, and messaging clients without configuration.
JVM & App Metrics Flow In
TigerOps immediately begins receiving JVM heap, GC pauses, thread pools, HTTP latency, and JDBC query performance — all correlated in the TigerOps service map.
What You Get Out of the Box
JVM Heap & Memory Analysis
Heap used/committed/max by generation (Eden, Survivor, Old Gen), metaspace usage, and direct buffer pool sizes. Detect heap pressure and memory leaks with AI pattern analysis.
GC Pause Monitoring
GC pause duration, frequency, and cause for G1GC, ZGC, and Shenandoah. TigerOps correlates GC pause spikes with request latency increases and service SLO breaches.
Spring Boot Auto-Instrumentation
MVC controller traces, Spring Data JPA query spans, Spring Security filter chains, Kafka consumer/producer spans, and @Scheduled task duration — all automatic.
JDBC Query Tracing
Per-query spans with normalized SQL text, connection pool wait time, and execution duration for all major JDBC drivers: PostgreSQL, MySQL, Oracle, and SQL Server.
Thread Pool & Executor Metrics
Active threads, queue depth, rejected tasks, and utilization for all ThreadPoolExecutor and ForkJoinPool instances. Detect thread starvation before it causes latency spikes.
Class Loading & Compilation
Loaded class count, JIT compilation time, and code cache usage. TigerOps tracks warm-up patterns and alerts when JIT compilation pressure degrades throughput.
-javaagent Startup Configuration
Attach the TigerOps agent to your JVM with a single startup flag.
# Download the TigerOps Java agent
curl -L https://releases.atatus.net/java/tigerops-agent-latest.jar \
-o /opt/tigerops/tigerops-agent.jar
# Start your application with the agent attached
java \
-javaagent:/opt/tigerops/tigerops-agent.jar \
-Dtigerops.api.key="${TIGEROPS_API_KEY}" \
-Dtigerops.service.name="order-service" \
-Dtigerops.environment="production" \
-jar your-application.jar
# Spring Boot — application.properties
tigerops.api-key=${TIGEROPS_API_KEY}
tigerops.service-name=order-service
tigerops.environment=production
# Enable all instrumentation modules
tigerops.trace.http=true
tigerops.trace.jdbc=true
tigerops.trace.messaging=true
tigerops.metrics.jvm=true
# Dockerfile — multi-stage with agent
FROM eclipse-temurin:21-jre AS runtime
RUN curl -L https://releases.atatus.net/java/tigerops-agent-latest.jar \
-o /app/tigerops-agent.jar
COPY --from=build /app/target/app.jar /app/app.jar
ENV JAVA_OPTS="-javaagent:/app/tigerops-agent.jar"
ENV TIGEROPS_SERVICE_NAME="order-service"
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/app.jar"]Common Questions
Which Java versions and JVM distributions does TigerOps support?
TigerOps supports Java 11 through Java 21 LTS on OpenJDK, Eclipse Temurin, GraalVM JIT mode, Amazon Corretto, and Microsoft OpenJDK. GraalVM Native Image is supported in a separate lightweight SDK mode without the bytecode agent.
Does the agent work with Spring Boot native compilation (GraalVM Native Image)?
Yes, with the TigerOps Spring Boot Starter for native mode. Add the starter to your pom.xml and the instrumentation is compiled into the native image at build time using GraalVM reachability metadata. The -javaagent approach is not applicable to native images.
What is the overhead of the TigerOps Java agent?
Typical overhead is under 3% CPU and 30-60MB additional heap. The agent uses byte-buddy for bytecode instrumentation, which is applied at class load time with minimal runtime cost. You can configure sampling rates to reduce overhead for very high-throughput services.
Can TigerOps detect Java memory leaks automatically?
Yes. TigerOps tracks Old Gen heap growth rate over time and compares it against GC collection frequency. When it detects that the Old Gen is growing after full GC cycles, it fires a memory leak warning and provides a heap histogram from the JVM for analysis.
Does TigerOps support Quarkus and Micronaut in addition to Spring Boot?
Yes. Quarkus (JVM mode) and Micronaut are both supported via the -javaagent flag. The agent auto-detects the framework and applies the appropriate instrumentation. Quarkus Reactive (Vert.x-based) async context propagation is fully supported.
Attach Once. Observe Everything.
JVM metrics, GC analysis, Spring Boot traces — with one -javaagent flag and no code changes.