As a warning, if you use JFR in the Oracle Java SDK, you have to pay a commercial license. If you want to avoid the legion of Oracle lawyers, only use JFR in OpenJDK.
JFR is one skill I haven't put into my toolbelt yet. I really enjoyed this as it helps you understand whats happening below the layer of user-interface abstraction, and I'll probably send the link to the infographic around the team.
Indeed, JFR is invaluable for performance analysis of JVM based applications. Admittedly, the information about the file format is probably interesting only to a smaller number of people, as it's an implementation detail of JFR. But the lack of readily available information piqued my curiosity, so I decided to take a closer look, hoping it might find some folks who might want to learn more about it.
As far as using JFR is concerned, I have a few other posts which may be useful too, e.g. these:
Are mission control and JFR still Oracle Audit Poison Pills in the otherwise free-to-use JDK? Or is everything free of Oracle Lawyer Attack now?
There was a period of time where if you used those, then Oracle got to charge you money and audit your org. That really put a chilling effect on me learning modern jdk tooling.
Both are fully open-source under the OpenJDK umbrella. JFR got open-sourced with Java 11 (also backported to 1.8 since then), and as such is subject to the license of OpenJDK (GPLv2 + Classpath Exception). JMC is also open-source (Universal Permissive License). Note though specific licensing may apply for particular binary distributions.
As usual: I'm not a lawyer, check with you own legal counsel etc.
https://docs.oracle.com/javacomponents/jmc-5-4/jfr-runtime-g... https://www.oracle.com/java/technologies/javase-subscription...