Skip to main content
The HyperProbe Java Agent is a zero-touch JVM Instrumentation agent. By attaching the JAR at startup via the standard -javaagent flag, it intercepts and transforms application bytecode on-the-fly—requiring zero code changes, zero annotation wrappers, and zero compilation modifications.

Technical Prerequisites

  • Runtime: Java 11 or later (compatible with Oracle HotSpot, OpenJDK, Corretto, Temurin).
  • Metadata: Active git commit SHA (mandatory for resolving bytecode offsets to local lines).
  • Agent Jar: The hyperprobe-agent.jar artifact. You can view and download all releases from Maven Central (Sonatype).

Downloading the Agent

Before attaching the agent, download the hyperprobe-agent.jar file. You can fetch it directly using curl or wget (be sure to replace <LATEST_VERSION> with the current version from Maven Central):
curl
wget

Installation & Deployment

Attach the agent at startup using the standard -javaagent flag. To adhere to twelve-factor principles and prevent configuration leakage, the Java agent reads setup parameters exclusively from environment variables.
System parameters (like -Dhyperprobe.serviceUrl=...) are intentionally ignored by the agent to maintain strict classloader isolation between your application and the debugger agent. Always use environment variables.

Deployment Templates

It is best practice to download the agent jar during build-time and bake the Git commit into the final image:
Dockerfile
Build the image in your pipeline by passing the active commit:

🛠️ Build-Tool & Framework Setup

Attach the JVM agent inside your development environment to test probes locally before deploying.
Add the agent args to your standard Spring Boot run tasks inside build.gradle.kts:
build.gradle.kts

Memory Safety Shields

Because bytecode injection could theoretically impact Heap health on heavy memory spikes, the Java Agent includes an active Memory Guardrail:
  • Yellow Threshold (Free Memory < 15%): Logs a warning and paces serialization buffers.
  • Red Threshold (Free Memory < 5%): Instantly uninstalls and suspends all in-memory probes to shield your JVM from Out-Of-Memory (OOM) failures.
  • Auto-Recovery: Resumes instrumentation automatically once GC recovers memory health and active cooldown cycles end.