Please or Register to create posts and topics.

Jeyzer 2.5 release available !

Jeyzer 2.5 is now available !!

Check it out on Docker or download the Jeyzer installers.

Release notes :

Jeyzer Analyzer

  • Display time zone support
    JZR report and all other communication media (JIRA, email, loggers and web) allow to display the time stamps in a time zone different from the recording one.
    This is particularly useful to correlate the detected events with applicative logs or end user feedbacks which are based on another time zone.
    This is also interesting with Java Flight Recordings as those are always in UTC time (although Jeyzer can use - through configuration - the process or a custom time zone as an alternative. See below).
    The display time zone can be specified through the Jeyzer Web Analyzer interface (see hereafter) when generating the JZR report and through the analysis profile configuration.
    In the JZR report, the time zone source will then be set respectively with either "user selected" or "profile".
    If not specified, the recording time zone is taken if available (which is always the case for the JFR and JZR recordings) : time zone source will remain the recording one.
    If the recording time zone is not available, the local time zone is taken.
    The display time zone in the profile configuration is defined in the <application>_analysis.xml file :
    <time_zones>
    <!-- Drives the date display in reports and other outputs. Optional -->
    <display_time_zone id="${JEYZER_DISPLAY_TIME_ZONE_ID}"/>
    Time zones ids are Java ones (see bottom note)
  • JVM flags analysis support
    JZR report - the JVM Flags sheet lists all the JVM flag attributes : name, value, previous value, change date, origin (Default, Command line..) and type.
    Every field can be filtered. Lines which have a non default origin are highlighted.
    To display it, add the <sheet sheet_config_file="${JEYZER_ANALYZER_CONFIG_DIR}/report/sheet/jvm-flags/jvm-flags.xml"/> in your JZR report configuration.
    The JVM Flags sheet will be displayed only if the recording (JZR or JFR) contains the JVM flags information.
    JVM flag monitoring
    Monitoring rules can be applied over the JVM flags to detect some specific value/pattern, compare numeric values or detect the absence of a flag.
    Those rules are the process card ones : Process card property pattern, Process card property number and Process card property absence.
    The JVM flag to monitor must be prefixed with "jzr.jdk.flag.". Example : jzr.jdk.flag.HeapDumpBeforeFullGC
    Every Jeyzer analysis now includes a default set of JVM flag rules stored in the                               ${JEYZER_ANALYZER_CONFIG_DIR}/monitor/rules/jvm_flag_rules.xml
  • JFR analysis support extended
    Analysis time zone is now flexible. It can be either one of these sources :
    - Process : the time zone will be issued from the user.timezone (if available in the JFR recording)
    - JFR : the time zone will be UTC which is the JFR standard one
    - Custom : the time zone will be the one defined by configuration (custom attribute) which is a Java time zone id (see bottom note).
    By default, the process source is selected.
    If the time zone is not found or invalid, the analysis will default on the JFR one.
    As a consequence the JZR report will display the time zone source as "process" or "JFR" or "Custom".
    The time zone configuration is defined in the jfr_uncompress.xml file :
    <time_zone source="process" custom="EST"/>
    JVM flags information is now parsed and analyzed.
    Openjdk 8 is now supported. Minimum version is 8u282+
  • Recording time zone specification
    When not available in th recording (typically when analysing a set of thread dumps), the recording time zone can be defaulted through the Jeyzer Web Analyzer interface (see hereafter) when generating the JZR report and through the analysis profile configuration.
    The recording time zone in the profile configuration is defined in the <application>_analysis.xml file :
    <time_zones>
    <!-- Default recording time zone if not available in the recording. Optional -->
    <recording_time_zone id="${JEYZER_RECORDING_TIME_ZONE_ID}"/>
    Time zones ids are Java ones (see bottom note).
    The recording time zone source will be set to "profile".
  • The Session Details is now listing the display and recording time zones and sources, as well as the start and end date in both time zones.
  • TDA file analysis support (files suffixed with .tda containing only stacks in a jstack 1.5 style)
  • The Task sequence and Monitoring Task Sequence display the thread activity on larger columns in case of small recordings.
  • Bug fix JEYZ-22 : Add recording extension check based on the supported translator extensions
  • Bug fix JEYZ-23 : JFR support - recording time zone is taking the Jeyzer analyzer's one instead of UTC (JFR standard)
  • Bug fix JEYZ-24 : JZR report - monitoring event times could be displayed using the analyzer time zone instead of the JZR or JFR recording one
  • Bug fix JEYZ-28 : Jeyzer Analyzer failed to parse thread names larger than 2000 chars
  • Bug fix JEYZ-29 : Jeyzer Analyzer failed to parse consecutive thread names (Jstack exotic case)
  • Bug fix JEYZ-30 : Jeyzer Analyzer failed to generate JZR reports with long sheet names

Jeyzer Analyzer Web server

  • Display time zone support
    The web interface permits now to choose the display and recording time zones.
    It is possible by de-selecting the "Time zone - automatic detection" check box.
    Time zone selection is allowed once the recording gets loaded.
    The recording time zone selection is possible only if that one is not found in the recording.
    The list of time zones is a representative sub set of the Java time zone ids (see bottom note).
    The recording and display time zones defined in the selected profile will serve as default values when the time zone is not chosen or cannot be deduced.
    If the "Time zone - automatic detection" is checked, the analyzer will attempt to deduce the time zones, otherwise use the default ones if any.
    The time zone widgets can be disabled through the JEYZER_WEB_PORTAL_TIME_ZONE_DISPLAY environment variable by setting it to false : in such case, the above automatic detection strategy will apply.
  • Bug fix JEYZ-25 : the start and end date of the JZR report link were not converted to the recording time zone

Jeyzer Recorder

  • Bug fix JEYZ-26 : JZR recording snapshot generation failed when an invalid time zone is specified on the monitored process command line
  • Bug fix JEYZ-27 : Jeyzer Recorder could use invalid time zone id in the snapshot file time stamps

Jeyzer Demos

  • Time zone is now covered inside the demos :
    Demo features is started in the US/Pacific time zone. Recording time zone is set with this value.
    The demo-features-mx profile is configured to display it in the US/Central time zone.
    Demo labors is started in the GMT time zone. Recording time zone is set with this value.
    The demo-labors profile is configured to display it in the IST time zone (Indian Standard Time).
  • JVM flags are now covered inside the demos :
    Demo features is setting the HeapDumpPath diagnosis flag : new value is visible in the JVM flags sheet.
    Demo Labors is setting the HeapDumpPath diagnosis flag and checks it through a dedicated monioring rule.

Jeyzer base repository

  • Jenkins master profile added
    Jnr-ffi shared profile added

Important

  • Time zone ids
    In Jeyzer, the time zones ids are the Java ones which are originally issued from the tz database.
    Official tz list is available at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
    Important : the Etc/GMT+2 is not GMT+2, but GMT-2 as per definition : in the "Etc" area, zones west of GMT have indeed a positive sign.

Upgrade instructions (optional)

  • Default time zones :
    You may add in the <profile>_analysis.xml under the analysis node this section :
    <time_zones>
    <!-- Default recording time zone if not available in the recording. Optional -->
    <recording_time_zone id="${JEYZER_RECORDING_TIME_ZONE_ID}"/><!-- Drives the date display in reports and other outputs. Optional -->
    <display_time_zone id="US/Central"/>
    </time_zones>
    As usual, you may put any environment variable (example here : JEYZER_RECORDING_TIME_ZONE_ID).
  • JVM Flags sheet
    You may add in the report.xml of your analysis profiles this report sheet section :
    <sheet sheet_config_file="${JEYZER_ANALYZER_CONFIG_DIR}/report/sheet/jvm-flags/jvm-flags.xml"/>
  • JVM flag monitoring rules :
    You may add in any Monitoring Events like sheet this default set of rules :
    <rule_set file="${JEYZER_ANALYZER_CONFIG_DIR}/monitor/rules/jvm_flag_rules.xml"/>
    as well as in any monitoring configuration (see <profile>_monitor.xml).