Java Profiler for Azure Monitor Application Insights is now in Public Preview. It is a new capability in Azure Monitor to help Java developers troubleshoot performance issues and uncover performance bottlenecks.
Under the hood, it uses Java Flight Recorder (JFR) to profile your application using a customized configuration. For additional context, JFR is a tool that collects profiling data of running Java applications, and it is integrated into the Java Virtual Machine (JVM). JFR comes with little to barely noticeable overhead cost which makes it great to run on heavily loaded production deployments.
Using the customized configuration, you can generate profiles in two ways:
- Automated Profiling - Configure CPU and memory thresholds to automatically trigger a profile recording.
- On-demand Profiling - Use “Profile Now” to run near real-time profile recording.
To try out the Java Profiler:
- Enable Azure Monitor Application Insights using v3.4.1 jar file or later.
- Enable the profiler using the java profiler installation guidance and set your CPU/Memory triggers for automatic profiling.
- Click the "Profiler" button on the Application Insights Performance Blade and click "Profile Now" for an on-demand profile.
- Download the profiling session when it becomes available (it may take about 5 minutes to show up in Portal).
- View and analyze the profile with Java Mission Control (JMC) or another tool (java profiles are not currently viewable in Portal).
Java Profiling is in preview today and can be enabled across all your JVMs. Even better, it is included in Application Insights for no additional cost. Try it out and let us know what you think!