Capture the process in motion
Let's collect data to analyze

Jeyzer Recorder

Jeyzer Recorder is running within the application to monitor.

As a Java agent, the Jeyzer Recorder collects periodically system and applicative metrics.
Data collection, archiving and other settings are defined within a recording profile.

The Jeyzer Installer permits to deploy the Jeyzer Recorder with standard production settings.
Deployed in a separate directory, it is easy to migrate from  one environment (or application) to another.
Monitored application requires only to include the Jeyzer Recorder agent path to its command line and it is done !

Jeyzer Recorder is production compliant and neutral in respect to the monitored application. It is :

  • Performance non invasive
    Used memory is optimized to the minimum. Applicative event generation is for example strictly controlled.
  • Class loader transparent
    Loaded in a separate class loader, without any 3rd party, the Jeyzer Recorder agent does not interfere with the monitored application.

Jeyzer Recorder is open source project : you know what you execute in production. Full trust and confidence are key.
Jeyzer Recorder is under Mozilla Public License 2.0.

Data collection period is by default 30 seconds.

System metrics


  • CPU
  • Memory
  • Disk Space Zones
  • Disk write speed
  • Number of CPUs
  • Java System Properties

Process


  • CPU
  • Memory
  • Java Garbage Collection
  • Java Memory pools
  • Java Heap Memory
  • Up time
  • Number of open file descriptors (Unix)
  • Loaded libraries
  • JVM details
  • JMX Applicative Data : custom counters, statistics, literals
  • Jeyzer Published Applicative Data (*) : custom counters, statistics, literals
  • Jeyzer Published Applicative events (*) : categorized information such as life cycle status, critical errors
  • Jeyzer Specific Data : writing speed, internal events..

Thread


  • Stacks
  • CPU
  • Memory
  • Jeyzer Published Applicative Data (*) : custom counters, statistics, literals
  • Jeyzer Published Applicative Events (*) : categorized information such as life cycle status, critical errors

(*) Applicative data and events are provided thanks to the Jeyzer Publisher library.

Collected data is automatically archived and compressed (zip or tar.gz) periodically and at shutdown (optional).

This Jeyzer recording archive is mainly used in the post mortem mode.
For example, your Support Service can request it to generate a JZR report, using the Jeyzer Web Analyzer.

By default :

    • Each archive covers a period of 12 hours.
    • Archive retention is 6 days.

Recording profiles permit to customize the data collection and archiving strategy.

Some default Recorder profiles are provided : standard (the generic one), AMQ, Tomcat..

As a sample, one can refer also to the Jeyzer demo recording profiles.

Exhaustive recording profile description is provided in the Jeyzer online documentation.

Recording profiles are defined in XML and use environment variables to facilitate the staging.

Although the Jeyzer Recorder Agent is the way to go, it is also possible to use the Jeyzer Recorder in 2 other modes :

  • Jeyzer RMI recorder
    The Jeyzer RMI recorder connects to the target Java process through RMI. It requires to have the JMX port open which is usually not suitable for production environments. In case of slowdown of the target process, the RMI layer will directly suffer from it : the data collection may be then slower or simply not happening in which case we lose precious information.
    It constitutes a good alternative when it is not possible to use the Jeyzer Agent Recorder when, for example, we do not have any control over the target process command line.
  • Jeyzer Jstack Recorder
    The Jeyzer Jstack Recorder is calling periodically the Java Jstack command to perform a thread dump of the target Java application. It must therefore run locally, along with the target Java application.
    Usage is rather limited as it doesn’t allow to collect any applicative/system/process data. Same applies for the applicative events.
    Like the Jeyzer RMI Recorder, it gets affected by any slowdown of the target Java application : Jstack simply cannot conect to the target JVM. It’s a fall back plan when it is not possible to use both the Jeyzer Agent Recorder and Jeyzer RMI Recorder.
    Important : Jeyzer Jstack Recorder requires a JDK.

    Download

    Jeyzer Recorder installer
    Jeyzer Ecosystem installer

    Documentation

    Structure
    Recording profile
    Deployment
    Security

    Source code

    Jeyzer Recorder GitHub repository
    Jeyzer Agent GitHub repository