1. Home
  2. Docs
  3. Recording
  4. Deployment


Jeyzer Recorder choice : Agent, JMX, Jcmd or Jstack ?

We definitely recommend you to go for the Jeyzer Recorder Agent.
The Jeyzer Recorder deployment strategy is therefore focusing on the Agent.

Reasons are :

  • Collection stability, because it is less dependent on the JVM resources.
    In case of process slowdown, the JMX and Jstack methods will have difficulties to connect to it.
    Note that the same applies for a JConsole or any external monitoring tool.
  • Adapted for industrialization on large platforms
    See below details
  • Easier to secure
    Opening JMX ports require extra security setup.
    Jstack usage may not be permitted on all systems
  • Virtual thread recording
    since Jeyzer 3.2

Jstack and JMX methods should be considered for one shot usage.
In case you would like to industrialize their usage, you will need to handle the starting strategy through a crontab or Windows Service, and set up the dependencies on the monitored process.
Jstack will require also to catch the process pid.
Note that the jstack method requires a JDK.

Special case : Java 21 / Virtual Threads
You can use either the JDK 21 jcmd tool or the Jeyzer agent to capture virtual thread dumps.
Jeyzer agent : recommended approach. Although it captures the same level of information than the jcmd tool, it also captures the classic process and system figures (CPU, memory, garbage collection).
Jcmd : it is missing any other information such as the thread state, CPU, memory and lock information.
The Jeyzer Recorder is shipped with a jcmd periodic call wrapper for Windows (jcmd-periodic.bat).


Use the Jeyzer Recorder Installer available in the download section.
The installer offers the choice of installing the Agent, the Client (JMX or Jstack) and configure those at high level.
For the Agent, you have the choice between the standard Jeyzer agent or the Jeyzer VT agent which permits to capture virtual threads. The latest requires Java 21+.

The Jeyzer Ecosystem Installer can also deploy a Jeyzer Recorder.

The Jeyzer Docker image includes only the Jeyzer agent.

Jeyzer demos
Every installation can include the Jeyzer demos which is Jeyzer Recorder ready.
Jeyzer demos are a very good starting point to learn about implementing the Jeyzer Recorder.
This is also a good way to check the health of the Jeyzer Recorder.

Every Jeyzer installation contains at its root a quick_start.html which provides the main paths and start instructions.
Every Jeyzer Recorder contains in its recorder directory a README.txt file.
The Jeyzer Recorder includes as well the README-AGENT.txt file.

Jeyzer Recorder Agent deployment strategy

First activation
If it is your first time with the Jeyzer Agent, we recommend you to to follow the fast activation path detailed in the Jeyzer Recorder deployment page (*).
You will need basically to update the command line of the application to monitor to include the Jeyzer Recorder Agent (-javaagent:[...]).
(*) As an alternative, follow the “Immediate usage” steps section available in the recorder/README-AGENT.txt of your Jeyzer installation.

This is a 5 minutes effort.

Scaling up the Jeyzer Agent Recorder
Once you are familiar with the Jeyzer Agent and need to deploy it inside all your Java applications, guidelines and templates are provided to help you in this deployment :

Basically, the Jeyzer Recorder Agent will be installed once and therefore shared.
The Jeyzer configuration (the recording profiles) and the recording directories will be centralized – usually externally – and follow a standard structure.
In this setup, the addition of any process to monitor will be very easy.

Full instructions are available in the recorder/README-AGENT.txt of your Jeyzer installation : read the “Scaling the Recorder” and “Monitor a new Java application” sections.

Scaling up the Recorder is quite flexible.
Depending on your needs (security, platform constraints, internal practices…) it can rely on environment variables, system properties (-D parameter) or agent parameters.

The agent logging layer is fully independent from the hosting application and is not invasive.
See the “Logger configuration” and “Troubleshooting" sections in the recorder/README-AGENT.txt.

This is a 10 minutes to 1 hour effort depending on the number of applications to monitor and needs.