The Jeyzer integration steps

Looking for clarity on your Java server processes on your production or test environments ?

Incident analysis means recording the data and analyze it : let’ s see how you can achieve both paths and take advantage of Jeyzer with a minimal effort.

Then choose your integration level target on each path and phase it.

The right target

The Recording path

Level 0 : Jstack

You do not use Jeyzer at this stage : you just rely on the Jstack tool available in any JDK.

Goal

Capture thread dumps periodically.

Analysis gains

Stack analysis
Abstraction appliance
Monitoring rule appliance

Deployment effort

10 minutes

Instructions

Create a watchdog script : see these instructions.

Limitations : you must install a JDK on the production/test server. You must manage the archiving and cleanup of the thread dumps.

Alternatives : use the Jeyzer Recorder Client with the Jstack recording method. It has the advantage to manage the archiving and retention.

Our recommendation : one shot usage, typically to investigate a reproducible “stuck” process situation in production.

Level 1 : Jeyzer Recorder agent

You use the Jeyzer Recorder, loaded within your Java application as a classic Java agent.

Goal

Generate a JZR recording and collect a large panel of data.

Analysis gains

Advanced monitoring rule appliance : CPU, memory, GC…
Technical control : library version checks and process parameters
Process life cycle
+ level 0 gains

Deployment effort

First time : 10 minutes
Industrialization : 20+ minutes

Instructions

Deployment instructions

Limitations : none.

Alternatives :
Use Java Flight Recorder (see next section).
Activate the JZR recording encryption (requires the Jeyzer Monitor license).
Use the Jeyzer Recorder with the JMX recording method. It has the advantage to perform recording remotely assuming you accept to open a JMX port. But it collects less data.

Our recommendation : the best approach while waiting for R&D to jump in the next level.
Play with the Jeyzer demos to see it in action.

Level 1b : Java Flight Recorder

You use Java Flight Recorder which is available in your Java installation.

Goal

Generate a JFR recording and collect a large panel of data.

Analysis gains

Advanced monitoring rule appliance : CPU, memory, GC..
+ level 0 gains

Deployment effort

10 minutes

Instructions

Deployment instructions

Limitations :
Target application must run under Java 11+

Alternatives :
See the Jeyzer Recorder (previous section).

Our recommendation : the best alternative approach to the Jeyzer Recorder if that one is not yet accepted/validated by your IT.
Play with the Jeyzer demos to see it in action.

Level 2 : R&D jumps in with applicative events

R&D implements the Jeyzer Publisher API to publish – at runtime – important applicative events and data that the Jeyzer Recorder will capture.
And level 1 still applies :  Jeyzer Recorder is loaded within your Java application as a classic Java agent.

Goal

Collect application data and events in the JZR recording
+ level 0 : collect a large panel of data.

Analysis gains

Applicative monitoring rule appliance : service interruptions, critical exceptions…
Application data context and counters
+ level 0 and 1 gains

Deployment effort

Only R&D effort :
R&D initial effort : 10 minutes
R&D coding effort : small, similar to a logging effort while coding

Instructions

Jeyzer Publisher API
Look at demo source.
Create your event id catalogue (like Oracle does with ORA-…).

Our recommendation : the ultimate approach. The Support and IT Ops people will be definitely grateful if the event id catalogue is implemented  and made available through javadoc. Play with the Jeyzer demos to see it in action.

The analysis path

Level 0 : Jeyzer Online analysis

Goal

Immediate JFR/JZR or thread dump analysis.

Analysis gains

Stack analysis
Java and public library layers :
– abstraction appliance
– monitoring rule appliance

Efforts

JZR report generation : 1 minute
JZR report visual analysis : 10+ minutes

Instructions

See these instructions.

Limitations :
Although the Jeyzer Online Analyzer is optimized to filter useless data, it applies a generic profile which can generate a large amount of un-categorized data and events to look at.
The online analyzer is secured to load only small to medium size JZR recordings, JFR recordings or thread dump collections.

Our recommendation : one shot usage, typically to investigate a reproducible “stuck” process situation in production.

Level 1 : Jeyzer Web Analyzer

Install the Jeyzer Ecosystem in your premises to get advantage of the Jeyzer Web Analyzer.
At this stage you rely on the generic profiles deployed in Jeyzer (like in the above 0 level).

Goal

Immediate JFR/JZR recording, thread dump analysis.

Analysis gains

Stack analysis
Java and public library layers :
– abstraction appliance
– monitoring rule appliance

Efforts

JZR report generation : 1 minute
JZR report visual analysis : 10+ minutes

Instructions

Download and install the Jeyzer Ecosystem.
Follow the instructions of the quick quick_start.html located at the installation root to start and connect to Jeyzer.

Limitations :  it applies a generic profile which can generate a large amount of un-categorized data and events to look at.

Our recommendation : initial usage to get familiar with the ecosystem.

Level 2 : Applicative analysis

Install the Jeyzer Ecosystem and create the Jeyzer profiles which are key in a perfect application incident analysis.
This is incremental process as these profiles will evolve over time (new analysis patterns, new incident signatures…).

Goal

Add the applicative dimension to the analysis.

Analysis gains

Meet your audience needs.
Get the functional abstraction.
Detect known applicative issues.
Identify performance bottlenecks.

Efforts

JZR report generation : 1 minute
JZR report visual analysis : 2+ minutes
Setup investments:
Profile creation : 1 hour
JZR report customization: 1 hour
Incremental updates : 5+ minutes

Instructions

Master profile documentation.
Shared profile documentation.
JZR report documentation.

Limitations :
Profile patterns and rules are maintained manually. This can be tedious at the beginning but you will see it can pay off once well set.

Our recommendation : you start getting comfortable at this stage assuming some manual investment.
Note that the shared profiles – which refer to your Java libraries – are of course reusable across your applications.
At this stage, the JZR report will fully match your audience needs : major events for the IT Ops, advanced views for the R&D and functional timelines for the support to go for a proper root cause analysis (RCA).
Play and look at the Jeyzer demos to start from a concrete basis.

Level 3 : R&D jumps in with the analysis patterns

Install the Jeyzer Ecosystem, create the Jeyzer profiles and generate automatically the analysis patterns.
New analysis patterns are now linked to the applicative source code thanks to the Jeyzer Annotations.

Goal

Remove the burden of the manual analysis patterns handling.

Analysis gains

Analysis gets now exhaustive.

Efforts

Build update : 20 minutes
Annotations usage : implicit in the R&D coding activity
JZR report generation : 1 minute
JZR report visual analysis : 2+ minutes

Instructions

Jeyzer Annotations documentation.

Limitations :
Profile rules are still maintained manually, although we’re looking at it..

Our recommendation : by involving R&D, you all reach here the state of the art of the Jeyzer analysis.
The Jeyzer Annotations usage should be part of any SCRUM DoD to contribute to the production readyness of any Java application.
Note that R&D can also introduce easily the Proguard de-obfuscation which is well supported by the Jeyzer analyzer. Just make it point to the right root location of the obfuscation mappings : Jeyzer takes care of the version handling.

Level 4 : Incident real time detection

Install the Jeyzer Ecosystem and use the Jeyzer Monitor to get notified when a critical issue is popping up.
In production environments, the Jeyzer Monitor will usually run on a separate server and access the active JZR recordings on a shared drive.

Goal

React upon a critical event.

Analysis gains

Analysis is now performed over multiple applications.

Efforts

Setup : 2+ hours

Instructions

Jeyzer Monitor documentation.

Limitations : Jeyzer Monitor requires a commercial license .
Jeyzer Monitor can be tested for a non production usage with its trial version (included in every Jeyzer release).

Our recommendation : detecting the issues in real time is the ultimate level of the analyis (opposed to the post-mortem analysis in the levels 1 and 2). To go further, the Jeyzer Monitor also offers a simple API to link it to your APM.
At last R&D and QA can take advantage of it to monitor the Java applications running in their Continuous Integration and End to End Test environments.