Concurrent with the formal release of Java 14, New Relic, an observability and monitoring platform company, announced the release of their real-time Java profiling and JVM cluster timeline view tools to more effectively troubleshoot performance bottlenecks in Java applications.
The real-time Java profiling tool relies on data produced by Java Flight Recorder (JFR). Open-sourced by Oracle and donated to OpenJDK after the release of Java 9, JFR was enhanced in Java 14 to produce a continuous stream of profiling events. Known as event streaming (JEP 349), events collected by JFR are characterized as:
- Duration events - an event that is logged after a defined period of time.
- Instant events - an event that is logged immediately.
- Sample events - an event that is logged at regular intervals.
Events are handled real-time via a callback API as opposed to parsing a file after the event has occurred.
For the more efficient troubleshooting of a cluster, the JVM cluster timeline view reports JVM behavior via a dashboard:
Each row represents a specific JVM and the boxes represent five-minute time slices. The colors: yellow, orange and red, denote areas in which there are performance issues. Three critical views are available in the details section of the dashboard to show: how resources are allocated; how garbage collection affects performance; and how to track garbage collection with logs.
The real-time Java profiling tool and JVM cluster timeline view are currently a limited release and only available by request. Requirements include a New Relic One account, the New Relic Java agent and Java 14.
Ben Evans, principal software engineer and JVM technologies architect at New Relic, spoke to InfoQ about these new tools.
InfoQ: What are your current responsibilities, that is, what do you do on a day-to-day basis?
Ben Evans: Officially, my title is principal software engineer, but I divide my time between internal and external projects.
Internal projects can include helping our teams that are new to the Java platform, or giving training sessions on Java concurrency and other advanced topics, or acting as an internal consultant for some of our performance-sensitive systems.
External projects include helping customers and fellow engineers who have very specific and unique needs in the Java space, or writing and speaking about Java, observability, architecture and related subjects. I'm hoping to start dedicating more of my time to open-source Java projects and activities (and especially OpenJDK) now that the real-time Java profiling and JVM cluster timeline view tools are available.
InfoQ: What is the best way for developers to get started using the real-time Java profiling and JVM cluster timeline view tools?
Evans: At the moment, we have a limited release to gain more feedback from early access customers. We value engineer-to-engineer feedback and want to make sure we have as useful a tool as possible prior to GA.
Java 14 customers can install the agent and the required extension starting now. To view the data in our New Relic One platform, they just need to contact us at deco@newrelic.com and we can turn on the feature flag to activate the UI for them.
InfoQ: When can developers expect a GA version of the real-time Java profiling and JVM cluster timeline view tools?
Evans: It'll be available for all New Relic customers to add to their subscription as soon as the feedback process I mentioned above completes - which should be very soon. We're very keen to get this into the hands of as many customers as possible as soon as we can.
InfoQ: What makes New Relic unique from its competitors?
Evans: We're unique in that we have a deep understanding of two equally important, but very different areas of the software market. We're able to support engineering teams that are just starting to explore the value of observability platforms as well as enterprise customers who already have a lot of complex data that they need to ingest and analyze.
At the end of the day, we like to say that we're the industry's first and largest pure SaaS, open and programmable observability platform. What that means is we want to be able to provide open-source tools, connect all your sources of data in one platform, and allow your teams to not just use the out-of-the-box tools, but customize the data in any way they can imagine.
And with the availability of New Relic One, you can now pull in all your data into one platform and customize it to your needs. We view the platform as not just a monitoring platform, but an observability one - this allows you to observe all your systems in a way that makes sense to you and have a "entity-centric" view.
InfoQ: What's on the horizon for New Relic?
Evans: New Relic is really excited to be at the forefront of the Observability change. We know that there is increasing complexity in data that is consumed, so we strive to create tools that can consume massive amounts of data and provide insights to that data, tailored to each team.
That means that whilst JFR data is going to be a big help for customers in the Java space - it is just one (albeit very important) piece of the overall software ecosystem that customers have. So one of the challenges for New Relic is to deliver that best-in-class experience across every aspect of software that our customers care about.
We think the best way to do that is with a platform that can bring together disparate data from all the components that make up customers systems, and to give customers control to see the data the way they want - either through one of our curated, out-of-the-box experiences, or through dashboards and UIs that customers can create for themselves.
InfoQ: What else would you like our readers to know about the real-time Java profiling and JVM cluster timeline view tools?
Evans: This is a first release of what we see as an evolving product based on very new capabilities. We're really excited to be partnering closely with our customers to iterate on the features that matter most to them - and to bring them to as many of our customers as we can.
The results we're already seeing are pretty encouraging and we're really excited to see what the community can do with the tool as soon as they can get their hands on it.
Further details on the real-time Java profiling and JVM cluster timeline view tools can be found in the documentation. Also, this article provides details on how to use JFR and event streaming in Java 14.
Resources
- Introducing New Relic One: Our Platform for the Next Decade by Lew Cirne (May 14, 2019)
- Java Flight Recorder and JFR Event Streaming in Java 14 by Ben Evans (February 27, 2020)
- Java 14 Released by InfoQ (March 17, 2020)