Please or Register to create posts and topics.

Jeyzer 2.4 release available !

Jeyzer 2.4 is now available !!

Check it out on Docker or download the Jeyzer installers.

Release notes :

Jeyzer Community license updated

  • Jeyzer is now released under the Jeyzer Community License Agreement Version 1.2
    What has changed : Jeyzer Monitor is now under trial period : until end of May for the current release.
    After this date, the JZR reports generated by the Jeyzer Monitor will be empty.
    The Jeyzer Analyzer is not affected and remains a free solution.

Jeyzer Analyzer

  • - JFR analysis support
    Jeyzer Analyzer can now analyse JFR recordings through an extra Jeyzer translator.
    Prerequisites :
    - JFR recordings must be made with Java 11+.
    - Jeyzer Analyzer must run under Java 11+.
    - JFR recordings should be generated using the JFC configuration provided within any Jeyzer installation.
    See the associated README file for more details about the JFR usage within your environment.
    By default the JFR translator is now active in the Jeyzer portal, template and demo profiles.
    To benefit from it on an existing profile (issued from Jeyzer 2.3 or below), add this line in the <application>_analysis.xml file :
    <translator type="jfr" translator_config_file="${JEYZER_ANALYZER_CONFIG_DIR}/translators/jfr/jfr_uncompress.xml"/>
    under the compression translator declaration.
    The translator will convert ("uncompress") the JFR events into JZR snapshots.
    Once uncompressed, those will be processed by the other Jeyzer translators, such as the de-obfuscation one.
    The jfr_uncompress.xml defines the JFR analysis Jeyzer settings. Duplicate it if required for customization needs.
    The JZR snapshots resulting from the conversion are stored in the jfr_uncompressed directory.
    You may keep it for control purposes by setting the keep_files parameter.
    Example (jfr_uncompress.xml) : <jfr_uncompress keep_files="true" directory="${JEYZER_RECORD_DIRECTORY}/jfr_uncompressed">
    For control purposes, the JFR events can be dump into distinct text files (per_type) and/or globally (all) through the dump_events settings :
    Example (jfr_uncompress.xml) :  <dump_events per_type="true" all="false" directory="${JEYZER_RECORD_DIRECTORY}/jfr_dump"/>
  • JRockit Java Mission Control recording format is now supported.
  • Stack size interest strategy - meaning automatic filtering of useless stacks - constraint has been relaxed and made more configurable.
    The percentage of sample quiet stacks (meaning mostly waiting/sleeping) required to allow this strategy is now configurable. It was previously hard coded to 5%.
    Example (sample_app_analysis.xml) : <scan_coverage snapshot_samples="10" snapshot_sample_percentage="30"
    Default value is five if the snapshot_sample_percentage attribute is missing.
  • JZR report : the Session Details sheet now includes the Jeyzer Recorder logging details and the Jeyzer agent version.
  • Process card monitoring rules : Jeyzer logging monitoring rules added for debugging active, console active.
  • Lock relationship support added on jstack 1.5 format
  • Bug fix JEYZ-14 : Sheet formats were only applying on the task sequence sheets. Now extented to all sheets (as per the original documentation)
  • Bug fix JEYZ-16 : Prevent false positive file delete warning on multiple deobfuscations
  • Bug fix JEYZ-17 : Strip code line failed on Java 11 Ubuntu stack
  • Bug fix JEYZ-18 : Jstack 1.5 file pattern relaxed
  • Bug fix JEYZ-19 : Display of large stacks could fail under certain conditions
  • Bug fix JEYZ-20 : Deadlock cycle detection failed on thread dumps issued from JMX

Jeyzer Analyzer Web server

  • JFR format support
    The JFR maximum file size is 100Mb. Change it through the JEYZER_WEB_UPLOAD_RECORDING_MAX_SIZE environment variable (affects also the zip/tar.gz files).
  • Error message display improved.
  • Bug fix JEYZ-15 : analysis failed when the Report id input field did contain a start or end space.

Jeyzer Recorder

  • The Jeyzer Recorder Agent is now deployed and integrated within a scaling recording and configuration structure (internal or external),
    meaning it is adapted for the monitoring support of multiple Java applications.
    Once installed, the agent is immediately usable by adding this parameter to the monitored application command line :
    -javaagent:"<Jeyzer home>/recorder/lib/jeyzer-agent.jar"=<Jeyzer home>/recorder/config/agent/jeyzer-agent.xml;jeyzer-record-agent-profile=<app name>
    Adding extra applications in this scaling structure has been simplified (5 minutes effort) : see the README-AGENT.xml for the setup instructions.
  • The Jeyzer Recorder now support default paths for the configuration repository and recording home.
    It is still possible to override it using the JEYZER_RECORD_APP_CONFIG_REPOSITORY and JEYZER_RECORD_APP_RECORDING_HOME environment variables or system properties.
  • The Jeyzer Recorder now support a default recording agent profile.
    It is still possible to override it using the JEYZER_RECORD_AGENT_PROFILE or to specify it on the -javaagent parameter (as above).
  • Logging framework has been made fully independant and neutral : Logback has been replaced by the Java Util Logging (JUL).
    The logging configuration is Jeyzer specific and therefore cannot interfere with any external logging configuration.
    Log file path is now determined dynamically (no need to set it anymore).
    Upon change, log configuration can be reloaded at runtime. Disabled by default.
    Log file and log configuration paths can be overriden through environment variables ot through -D start parameters.
    See the Recorder README.txt for more details.
  • Bug fix JEYZ-12 : Jeyzer Recorder failed to load its configuration on JDK 8 when Apache Xerces is on the classpath
  • Bug fix JEYZ-13 : Regain Java 7 compatibility

Jeyzer Agent 3.1

  • The agent parameter support and variable default value support (exposed hereafter) permit to instantiate directly the agent,
    while staying compatible with any environment variable or system property declaration.

    • Agent parameters support
      These parameters can be referenced by the agent variables.
      The variable resolution is performed in this order : internal agent variable, agent parameter (new), system property, environment variable
      Parameters are specified at the end of the Java agent argument, separated by a semicolumn.
      Example : -javaagent:"<agent jar path>"<jeyzer-agent.xml path>;param_key1=param_value1;param_key2=param_value2[...]
    • Variable default value support. Optional
      If the system property or environment variable contained in the variable value cannot be resolved, the agent variable will be set
      with the default value and the unresolved variable will be set as a system property.
      Example : <variable name="jeyzer-agent-home" default="C:\jeyzer-recordings">${JEYZER_RECORD_APP_RECORDING_HOME}</variable>
      The jeyzer-agent-home agent variable and the JEYZER_RECORD_APP_RECORDING_HOME system property
      will be set with "C:\jeyzer-recordings"assuming JEYZER_RECORD_APP_RECORDING_HOME would not be
      set previously as system property or environment variable.
      System property and environment variable can be specified (and will be resolved). Inner variable resolution is however not supported.
  • Agent bootstrap logging
    Boot traces will appear in the console. Disabled by default.
    Add the -Djeyzer.agent.boot.debug=true on the command line to activate it.
  • Jeyzer agent version is now exposed as a system property (and recorded by the Jeyzer Agent)

Jeyzer Installers

  • The Jeyzer Recorder configuration repository path is now configurable when the Jeyzer Recorder Agent is selected.

Jeyzer Demos

  • Jeyzer demos do now also generate a JFR recording.
    It is available in the <recording home directory>/<demo profile>/jfr directory.
    It uses the customized JFC configuration jeyzer-demo.jfc file available in the <demo home>/config/jfr directory.
    The thread dump period is set to 5 seconds (like for the JZR recording).

 

Upgrade

Jeyzer Ecosystem 2.4 : install the new version and make it point to your profile repository.
To benefit from the JFR support, add this line in the <application>_analysis.xml file of your analysis profile(s):
<translator type="jfr" translator_config_file="${JEYZER_ANALYZER_CONFIG_DIR}/translators/jfr/jfr_uncompress.xml"/>

Jeyzer Recorder 2.4 : replace the previous installation directory with the new one.
You must replace the agent parameter in your application command line with this new parameter (the agent jar version has been removed):
-javaagent:"<Jeyzer home>/recorder/lib/jeyzer-agent.jar"=<Jeyzer home>/recorder/config/agent/jeyzer-agent.xml

Compatibility

Previous Jeyzer configurations remain compatible with this new version.

JZR recordings generated with previous Jeyzer versions remain compatible with this new version.