1. Install via SDKMAN! (once registered) or direct download (today)

SDKMAN! is the recommended path on Linux developer machines, but registration is in progress (PR sdkman/sdkman-db-migrations#783). For installation today, use the GitHub Release tar.gz, the .deb / .rpm packages on the same Release page, or follow the Linux install guide. Once SDKMAN! registration completes:

2. Verify the install

Confirm Eliya is the active JVM and the diagnostic path root is writable:

The first command should report Eliya in the version banner. The second should print OK when the diagnostic path root exists and is writable. For downloaded-artefact integrity (GPG signature and SHA256 checksums), see Verify your download.

3. Run your application with operational-readiness defaults

Add a single flag to your existing JVM command:

Phase 1 today (25.0.3) activates six ergonomics: heap-dump-on-OOM with structured path, exit-on-OOM, Native Memory Tracking summary, predictable crash log path, container support reinforced, and diagnostic VM options unlocked. Near-zero steady-state CPU overhead. The Phase 1 ergonomics either trigger only on the actual event (heap-dump-on-OOM, crash log, exit-on-OOM) or carry low steady-state overhead (NMT summary mode). No GC tuning, no TLS overlay.

Phase 2 (planned) adds continuous JFR (24-hour rolling buffer at sub-1% overhead) + unified GC logging as defaults under the same flag, plus bundled Eclipse MAT + async-profiler. See flags reference for the full breakdown of Phase 1 + Phase 2 capabilities.

4. Inspect what the profile activated

The output shows the six Phase 1 ergonomics with their values and origin. Flags with {ergonomic} in the origin column were set by EliyaProfile=Production; flags with {default} were already at the activated value upstream (this is the case for UseContainerSupport on JDK 25).

5. Find your diagnostic artifacts

Eliya writes artifacts to a three-level filesystem layout (${ELIYA_DIAGNOSTIC_PATH}/${service}/${replica}/${category}/), with replica suppression when replica resolves to the same value as service:

JFR recordings, heap dumps (on OOM), crash logs, and GC logs live in sibling jfr/, heap/, crash/, gc/ directories under each replica's path. For Kubernetes, the replica name is the pod name; for bare-metal systemd, the replica name is suppressed and artifacts land directly under the service directory.

Where to go next

  • Install on Linux: tar.gz, DEB/RPM, systemd integration for production servers.
  • Install with Docker: multi-arch OCI images, sidecar diagnostics, ephemeral debug containers.
  • Flags reference: what EliyaProfile=Production activates, performance impact, override semantics.
  • Migration guide: switching from Corretto, Temurin, Zulu, or another OpenJDK distribution.
  • Integrations: Maven/Gradle toolchains, Kubernetes, service mesh, logging stacks, APM coexistence.
  • Roadmap: Phase 2/3/4 trajectory: FIPS variant, bundled diagnostic tooling, Asymm Forensics, compliance profiles.
  • Troubleshooting: common issues with concrete diagnostic commands.
[ } Eliya Eliya Dial Dial
Privacy
[ }
[ }
// PRODUCTS Eliya Eliya Dial Dial