In order to cover JVM performance, a monitoring tool needs to be able to monitor hypervisors. It needs to be tuned in order to work with the log messages generated by the JVM that pass the information on the internal operations of the JVM. The monitor also needs to explore the VM black box to make sure that all of the JVM resource requirements are met.
Here is our list of the seven best JVM monitoring tools:
- AppOptics EDITOR’S CHOICE Provides infrastructure and application monitoring that covers all possible causes of JVM performance issues. This SaaS tool monitors everything from the network through to code efficiency. Start 14-day free trial.
- eG Enterprise JVM Monitoring (FREE TRIAL) This Java Virtual Machine monitor is part of a hybrid system monitoring package that covers infrastructure and applications. Runs on Windows Server and Linux, or take it as a SaaS package. Access a 30-day free trial.
- ManageEngine Applications Manager (FREE TRIAL) This monitoring tool is very strong in tracking JVM garbage collection routines and memory management. It installs on Windows Server and Linux. Start 30-day free trial.
- Site24x7 APM (FREE TRIAL) A cloud-based infrastructure and application monitor that covers JVM operations and the performance of all its supporting services. Start 30-day free trial.
- Datadog APM An application performance monitor that is based in the cloud and implements JVM monitoring.
- Sematext Monitoring A log-centered system and security monitoring service that is delivered from the cloud and includes JVM performance monitoring.
- Dynatrace A cloud-based system monitor that includes JVM monitoring and a unique end-to-end transaction monitor.
JVM is not just a passive container. It has tasks of its own to perform in order to serve the Java processes that it hosts. These include “garbage collection” which should release resources once a Java process has finished with them.
There are many different services that need to be tracked in order to keep a JVM working properly and that involves too many factors to track manually. The only solution to the successful operation of a JVM and the services and software that it supports is to use an automated JVM monitoring tool.
JVM performance monitoring
The JVM system has built-in handlers for memory and resource management. Unfortunately, each resource access event can only be managed on a program-by-program basis.
If several Java programs are running simultaneously, they can lock each other – one holds a resource that the other needs to complete a task while the other holds a different resource that the first program is trying to access. So, neither program can progress. Such scenarios are quite common in JVM environments with regard to memory and database connections.
An example of a database-related issue occurs when the database has established a maximum number of connections. Therefore, no database-dependent process can proceed until one of the other processes connected to the database completes. If the processes connected to the database hang because of memory issues, all of the Java programs on the server will grind to a halt.
Java performance issues fall into five categories:
- Memory availability
- Database access
- Multi-thread deadlocks
- Application/services availability
- Server and network problems
Spotting these issues and resolving such problems requires a JVM monitoring tool that can work at many levels of the stack simultaneously and examine hardware and application performance constantly.
The best JVM monitoring tools
Using this set of criteria, we looked for a range of synthetic monitoring services with both cloud-based and on-premises options.
Our methodology for selecting a JVM monitoring system
We reviewed the market for Java virtual machine monitoring tools and analyzed the options based on the following criteria:
- Hypervisor monitoring capabilities
- Monitoring of supporting resources, such as memory allocation
- Monitors to track JVM functions, such as garbage collection
- Activity logging
- Live performance graphs
- A free trial or a demo package that enables a cost-free assessment
- Value for money from a tool that covers a range of virtualization services as well as JVM tracking
1. AppOptics (FREE TRIAL)
AppOptics is a cloud-based service that operates both infrastructure and application monitoring. The cloud service is offered in two plans, which are Infrastructure and Application Performance Monitoring. Fortunately, for JVM users, the APM package also includes the Infrastructure module.
Key Features:
- Cloud-based
- Monitors resource availability
- Tracks hypervisor activity
- Database and web application monitoring
- Root cause analysis
The complexities of JVM mean that every underlying resource that contributes to the delivery of an application containing Java needs to be monitored. The full AppOptics service covers all of these contributing resources. Lateral interactions with other applications are also monitored by AppOptics because it watches over database performance and web application systems as well as hypervisors and Java code.
Although the service is delivered from the cloud, it does need an agent installed on each of the servers that host your JVM implementations. Fortunately, there is an agent version for every server type that you could run Java on.
The Infrastructure part of the AppOptics package monitors the server and network systems that the JVM relies on. The JVM’s structure is also an issue for the Infrastructure module. The processes that implement the JVM need to be tracked by the APM module of AppOptics. Each process running within the JVM also needs to be tracked by the APM through gathering JVM log messages. Finally, all of the other applications that the Java processes within the JVM have to access need to be kept in peak performance and watched by the APM.
Java itself is built into many service libraries for other platforms, including .NET, PHP, and Python. There is constant interaction between Java processes and other applications and AppOptics can track requests across processes and identify different threads that contribute to the same process.
While the day-to-day benefit of running the AppOptics JVM monitor lies in its ability to take over all supervision tasks, it is also a useful system for root cause analysis. An alert mechanism in AppOptics means that the IT staff can assume that everything is running smoothly unless otherwise notified. Once a problem arises, specialists have the support of AppOptics, which can identify the likely source of the problem, be it a slow network or a bug in a Java script.
The attractive screens of the dashboard are well organized and promote drill-down investigations. The console is entirely hosted in the cloud, so it can be accessed from any standard browser. You can try AppOptics for yourself by accessing a 14-day free trial.
Pros:
- Provides JVM-specific monitoring options – covering both applications and infrastructure
- Offers great visualizations reflecting live and historical health metrics and resource consumption
- Is easily scalable, built as a cloud service
- Provides root cause analysis tools – great for high-uptime environments
Cons:
- Would like to see a longer trial period for testing
EDITOR’S CHOICE AppOptics is our top recommendation for JVM monitoring because it covers every level of the stack that contributes towards successful JVM operations. AppOptics runs continuous checks on the statuses of JVM, the Java code it protects, the processes that it and its Java scripts launch, threads, coordinating applications, infrastructure, and services. Just one failure in any single element can impair the performance of a JVM and that will grind most of your active applications to a halt. The alerts of AppOptics spot trouble before it gets serious and the drill-down screens of the dashboard show exactly where the cause of the problem lies. Start 14-day Free Trial: my.appoptics.com/sign_up OS: Cloud-based
EDITOR’S CHOICE
AppOptics is our top recommendation for JVM monitoring because it covers every level of the stack that contributes towards successful JVM operations. AppOptics runs continuous checks on the statuses of JVM, the Java code it protects, the processes that it and its Java scripts launch, threads, coordinating applications, infrastructure, and services. Just one failure in any single element can impair the performance of a JVM and that will grind most of your active applications to a halt. The alerts of AppOptics spot trouble before it gets serious and the drill-down screens of the dashboard show exactly where the cause of the problem lies.
Start 14-day Free Trial: my.appoptics.com/sign_up
OS: Cloud-based
2. eG Enterprise JVM Monitoring (FREE TRIAL)
eG Enterprise is an infrastructure and application monitoring package that is able to track the performance of both cloud and on-premises systems. One of the applications that the tool is able to track is JVM.
- User experience monitoring
- JVM memory management tracking
- JVM garbage collection monitoring
- Alerts for performance problems
The JVM monitoring system is part of the APM module of the eG Enterprise and has an underlying resource monitoring system. The Java activity of your applications will use system resources, such as server memory, and it will also access network facilities, so the infrastructure monitoring layer of this package is also essential for full JVM management. The system is able to assess demand on resources that comes from JVM instances and all of the other applications running on the same host. Knowing the full capacity of that server enables the monitor to identify when resources are likely to run short. That lack of capacity in the supporting services will impair the performance of the JVM.
Knowing the root cause of a performance issue with your JVM system enables you to react and fix the problem much quicker than if you have to begin your investigation from scratch. The eG Enterprise monitor is able to predict when resources are going to run short and raise an alert. That means you can start your mitigation actions to head off problems before they become noticeable to users.
The eG Enterprise service is licensed per physical server, so you can watch over as many JVMs or other virtual systems as you need to at no additional cost. You can choose to download the software for eG Enterprise and host it on Windows Server or Linux. Another option is to access the package on its SaaS platform. You can get a 30-day free trial of both the infrastructure and APM modules of eG Enterprise.
Resource demand predictions
Alerts for evolving performance problems
JVM memory usage tracking
JVM thread status examination
No price list
eG Enterprise Access 30-day FREE Trial
3. ManageEngine Applications Manager (FREE TRIAL)
When designing their JVM performance monitoring module in the Applications Manager, ManageEngine decided that memory management was the biggest issue. They were right. The Applications Manager briefing documents stress that the JVM monitoring tool focuses on how JVM manages the memory allocation and release processes. There is a lot more to JVM memory usage and the Applications Manager covers all of those issues.
- On-premises for Windows Server and Linux
- Memory usage monitoring
- Process monitoring
- Garbage collection tracking
The Applications Manager isn’t just a JVM monitoring tool. While it tracks JVM performance, it is also watching those other applications that Java processes rely on, such as databases and web applications.
As the Application Manager watches all processes, it is able to spot any hanging or abandoned processes and recommend that they be killed. This vigilance alone will solve many of the potential performance problems that JVM can experience and cause other applications running on the same server to fail.
The Applications Manager also monitors server statuses. These factors include overall server memory utilization, disk availability and interactions, and interface activity. The only part of the stack that the Applications Manager doesn’t cover is the network. However, its monitoring of interfaces enables it to show where the problem lies if the network is acting up. Users would need to add on ManageEngine OpManager in order to drill all the way through to network device issues; however, the two modules integrate.
Applications Manager is available for installation on Windows Server and Linux. ManageEngine makes the package available for a 30-day free trial.
Offers in-depth JVM memory and infrastructure monitoring
Offers on-premise and cloud deployment options
Can highlight interdependencies between applications to map out how performance issues can impact businesses operations
Can automatically kill hung processes through automated workflows and scripting
Can take time to fully explore all features and options available
ManageEngine Applications Monitor Start 30-day FREE Trial
4. Site24x7 APM (FREE TRIAL)
The Site24x7 system is a SaaS platform and it is marketed in modules. The APM is separate from the Infrastructure monitoring system of the platform. However, it does include server monitoring and network monitoring that can be purchased as an add-on service.
- Cloud-hosted
- CPU and memory monitoring
- Garbage collection tracking
The core focus of JVM performance monitoring in Site24x7 APM looks at the activities of the JVM itself. Metrics checked by the APM include CPU capacity usage, process count, number of garbage collection activities, garbage collection process time, and thread summaries.
The focus on JVM activities is not unexpected. However, it isn’t the sole responsibility of the APM because it tracks all processes running on the server and it simultaneously monitors all applications. So, it can spot when there are problems with database capacity. As it also tracks overall server statuses, such as disk usage, memory availability, and CPU capacity, it is able to see any performance problems that might impact on the JVM even if the applications launching those problematic processes are completely unrelated to JVM. This is important because a server that is running out of resources is going to impact the performance of JVM.
Site24x7 APM is very strong on web application performance and there is a specialist module for web testing if your JVM contributes heavily to a website. The Website Monitoring module is able to integrate with the APM. However, the standalone APM implementation includes some web performance checks.
Site24x7’s system, including its console, is hosted in the cloud. However, the system does need an onsite agent installed on the server where the JVM is running. Site24x7 APM is charged for by subscription with a monthly rate for the base package and a menu of add-ons to enhance and tailor the service towards specific needs. It is available for a 30-day free trial.
Focuses on monitoring JVM disk usage, memory, CPU, and overall performance
Offers a host of out-of-box monitoring options and dashboard templates
Allows administrators to view dependencies within the application stack, good for building SLAs and optimizing uptime
Offers root cause analysis enhanced by AI to fix technical issues faster
Site24x7 is a feature-rich platform with options that extended beyond databases management, may require time to learn all options and features
Site24x7 Start 30-day FREE Trial
5. Datadog APM
Datadog is a cloud service that includes a range of IT systems monitoring tools. One of those services is Datadog APM, which includes JVM performance monitoring. The dashboard for Datadog is hosted in the cloud and can be accessed through any standard browser. That dashboard includes screens that enable JVM performance monitoring covering a range of important metrics.
- Cloud-based
- Live performance tracking
- Application dependency mapping
The APM constantly monitors key statistics about JVM instances. These focus on resource usage, particularly memory activity and the efficiency of garbage collection.
Datadog APM measures response times and process activities for all applications on a server. This service shows whether related applications are performing badly. Such problems could have an effect on JVM performance, particularly if those applications offer services to Java processes running in JVM. An example of such a service would be database management systems.
The dashboard of Datadog APM ties together processes across applications, indicating the relationship between them and measuring performance across these boundaries.
The APM also examines server performance statistics. Server monitoring can be enhanced by adding on the Infrastructure monitor. The Datadog APM is charged for on a subscription model with a rate per host per month. Datadog offers the APM for a 14-day free trial.
- Could use a longer trial period
6. Sematext Monitoring
Sematext is a cloud-based monitoring service that has a strong SIEM security monitoring feature. The main strategy of Sematext revolves around log file collection and analysis. This is a typical methodology for security information and event management systems. Log messages arrive in real-time and are displayed before they are filed.
- Cloud-based
- Live transaction reports
- Performance graphs
The Sematext system is able to exploit all of the information contained in log messages to produce a range of monitoring and management services. One of these is an infrastructure monitor, called Sematext Monitoring and it includes JVM performance monitoring. This is called the Java Profiler.
Sematext Monitoring is able to gather statistics on more than 100 factors surrounding Java performance. Most of these are made available for root cause analysis. The Sematext system recognizes a few key metrics that indicate performance statuses. These are memory usage, garbage collection activity, and data on JVM threads.
As Sematext stores all of the information that it gathers, users are able to check back to see the same performance indicators over time. This can be useful when trying to identify whether JVM performance impairment follows a pattern and whether there are any time-related issues that cause problems. Sematext Monitoring watches all other processes and makes constant checks on server resource availability.
Sematext Monitoring is metered, with a rate set per data collection agent per hour and no extra charges for data processing volumes. There are three plans available: Basic, Standard, and Pro. The Basic plan is free to use and has a limit of monitoring five hosts with a data retention period of 30 minutes. The Standard plan has a data retention period of one month and the Pro plan retains data for two months. The Standard and Pro plans can be experienced on 14-day free trials.
- Can monitor virtually any environment, supporting on-premise, cloud, and hybrid-cloud configurations
- Asset discovery is continuous, providing sysadmin with a consistently up to date inventory of devices
- Comes with troubleshooting tools built in, such as the Java profiler and network topology map
- Can monitor external assets such as websites to measure uptime, latency, and performance
7. Dynatrace
Dynatrace is a cloud-based infrastructure and application performance monitor that is particularly strong at web monitoring. Both the APM and Infrastructure monitoring modules are bundled together into one package, which is great for monitoring JVM performance.
- Cloud-based
- Time-series sampling
- Cross-application transaction tracking
The JVM performance monitoring features of Dynatrace cover a comprehensive list of metrics in a JVM that includes memory statuses, garbage collection, request, process statuses, response times, interactions, error rates, and traffic volumes.
As well as straightforward monitoring status by status, Dynatrace offers a unique end-to-end transaction journey monitor. This follows each request and examines each service that contributes towards its delivery and fulfillment. In web implementations, this is particularly useful to examine how JVM statuses contribute towards the success or failure of this activity.
Dynatrace charges for its Full-stack Monitoring service by a subscription rate per month. You can experience the system on a 15-day free trial.
Offers support for JVM environments including templates dashboards
Highly visual and customizable dashboards, excellent for enterprise NOCs
Operates in the cloud, allowing it to be platform-independent
Can monitor application uptime as well as the supporting infrastructure and user experience
Designed specifically for large networks, smaller organizations may find the product overwhelming
Choosing a JVM Monitoring tool
Keeping JVM running satisfactorily requires a very comprehensive tool. A standalone utility or command-line utility is just not good enough. Tests need to be run recursively and the monitor needs to have status threshold alerts on a large number of resources to head off potential performance issues.
A monitoring service that includes an alerting mechanism is preferable to a system that needs to be attended by an IT technician. Tasking an IT specialist to sit and run tests and watch for results is a waste of human resources. Tech specialists are expensive and difficult to find, so you want to make the most of their time by removing any task that can be automated. Monitoring JVM and other system resources is a very good example of the sort of work that computers do better than humans.
You need to find a good JVM monitoring system and if you can find one that takes care of many other infrastructure and resource monitoring tasks, then you have saved yourself some money.
- Heap memory – The memory space used for applications
- Garbage Collection (GC) – The cleaning up of allocated memory once it is is no longer needed – returning it to availability
- Threads – These serve user requests