When you are using Java Flight Recorder (JFR), the JFR will use an event settings file to check which event types to record.
By default in JFR, there are two settings, "default" and "profile". The default setting is recommended for Continuous Recordings as it has very low overhead (typically less than 1% overhead). The profile setting has more events and useful when profiling the application.
Note: According to the Oracle documentation on "java" command, we should be able to specify "settings" parameter to the -XX:FlightRecorderOptions. However, the settings parameter has no effect when used with the -XX:FlightRecorderOptions and the default set…
Following libraries were mentioned in the WSO2 architecture thread. MetricsParfaitJAMon (Java Application Monitor)
While looking in to these libraries, I found out about following also. Java Simon - Simple Monitoring APIPerf4J
Here is a quick comparison of each project. These comparison criteria are based on the requirements in above proposal.
When we are trying to find performance issues, it is sometimes necessary to do continuous recordings with Java Flight Recorder.
Usually we debug issues in an environment similar to a production setup. That means we don't have a desktop environment and we cannot use Java Mission Control for flight recording.
That also means we need to record & get dumps using command line in servers. We can of course use remote connection methods, but it's more easier to get recordings from the server.
With continuous recordings, we need to figure out how to get dumps. There are few options. Get a dump when the Java application exits. For this, we need to use dumponexit and dumponexitpath options.Get a dump manually from JFR.dump diagnostic command via "jcmd"
Note: The "jcmd" command is in $JAVA_HOME/bin. If you use the Oracle Java Installation script for Ubuntu, you can directly use "jcmd" without including $JAVA_HOME/bin in $PATH.
Enabling Java Flight Record…