Zabbix vs JavaMelody for Java EE Application Monitoring

Sergey Kanshin

Sergey Kanshin

IT copywriter



10 Mar 2017

Reading time:

10 Mar 2017

From time to time, every company faces a situation when business applications show low performance or altogether become completely inaccessible. A business application is software that supports specific business processes of the company and is responsible for the effective processing of usual business tasks.

The architecture of a business app includes a web server, a server of applications, and a database server. If one of these components becomes inaccessible or has decreased performance, this leads to the application’s failure. As a result, it negatively influences the accessibility of company IT environment.

In order to secure the stability of business IT infrastructure you can use business application monitoring systems. They monitor the state of company payment systems, websites or apps and prevent possible errors by informing system administrators about critical indicators. It allows you to literally keep a finger on the pulse and take action before it is too late.

To secure the stability of business IT infrastructure you can use business app monitoring systems.

These days there is a wide range of both commercial and free monitoring solutions. All of them implement the monitoring of operating systems, DB systems, business applications and other software products. We consider the most widespread monitoring technologies: Java app monitoring tools.

Their parameters differ depending on the type of enterprise monitoring system. Some of these business app monitoring tools are being built into Java applications and monitor an app on the inside. Other tools make external observation via gathering indicators through JMX.

We tried several monitoring platforms for our projects and finally chose two of them: Zabbix and JavaMelody. Both provide high quality monitoring, although they are completely different in how they work. Thanks to this they help to solve various tasks. Zabbix allows watching an app over the long term via JMX. JavaMelody can be built into an app and provides complete insight into business app processes. Let’s look at these systems in detail.


Enterprise System Monitoring: Zabbix

The enterprise monitoring platform Zabbix allows you to gather statistics from a large number of devices, such as a Linux server and a DB server. As we mentioned before, Zabbix uses JMX for monitoring Java applications. You don’t need to build it into a web application. Instead, you should run Java with additional settings and follow the memory metrics or the number of threads. In addition, the main purpose of this platform is to provide notifications about possible problems in time.

The operating principle of Zabbix is as follows: On every computer you have to install a Zabbix-agent: a special program that works in the background and collects information about your program’s performance (for example, about databases). Apart from this, the system includes a Zabbix-server which periodically takes information from all users and saves it in a database. Then a server analyzes the collected information, reveals critical parameters, and warns the system administrator about an impending problem. Additionally, Zabbix users get a wide range of tools for reporting business app performance in the most appropriate form.

Zabbix platform provides monitoring of many parameters, including:

  • Processor usage
  • Memory consumption
  • Free space on the hard disks
  • Accessibility of devices connected to a computer
  • Accessibility of file systems
  • The number of threads in Java
  • The number of loaded classes in Java
  • Garbage-collector
  • The number of http requests arrived at the server
  • Time of implementing http requests
  • The number of user sessions
  • The number of requests to database
  • Time of implementing requests to database

Zabbix is fully-featured for long-term monitoring when the monitored systems are overall stable. Zabbix almost doesn’t lower the performance of apps under monitoring.


Enterprise System Monitoring: JavaMelody

Enterprise system monitoring tool JavaMelody is appropriate in those cases when you run a Java program for the first time on the server and you’re not sure how it is going to work under a full load. JavaMelody is also effective when your Java program crashes due to overloading and the reason is not known.

JavaMelody can be built into a Java application and due to this feature, it monitors the functionality inside the app. It is possible to get much more specific parameters for a Java app, than via external monitoring. You can easily build the monitoring system into a business app by entering a few settings in the deployment descriptor web.xml of your application.

Then you can monitor a vast number of parameters:

  • Processor usage
  • The number of http requests
  • The number of active threads
  • The number of requests to database
  • Garbage-collector
  • The number of threads
  • The number of loaded classes
  • Memory consumption
  • Total system usage
  • Total processor usage
  • The number of opened files
  • http session lifetime
  • The number of transactions to database
  • Free space on the hard disks
  • The number of busy threads Tomcat
  • The net usage
  • The number of JSP work
  • Log errors

Monitoring such a great number of Java app parameters helps to make problem detection and analysis simpler and faster.

The JavaMelody system is very convenient for monitoring web application at the stabilization stage when you don’t know its behavior in extreme conditions. However, this tool has drawbacks. As JavaMelody is built in a business application and monitors many various parameters, it can lower the app performance by a little bit.

Taking into account all the pros and cons, we recommend applying JavaMelody only for short-term purposes, when a business app is under stabilization.

Monitoring systems allows you to keep a finger on the pulse and take action before it is too late.

The final selection of Java app monitoring platform depends on the app features that you have in priority. Experiences have shown that using various platforms and a differential approach you can monitor any business apps, servers, and databases irrespective to their volume and complexity.

Monitoring business applications helps to reveal the risk of possible problems, analyze them and find appropriate solutions according to app parameters. In other words, enterprise system monitoring reflects the full picture of inner app processes and further improves a user’s experience. Solving problems before they cause disruptions gives stability to the whole company’s IT infrastructure, which is very important for modern businesses.


Filter by