Monitoring Java EE applications

December 27, 2007 at 8:57 pm | Posted in Java, Software Development | Leave a comment
Tags: , , ,

Who didn’t experience this situation before? You pushed your application into production. All your hard work of the last few months is supposed to pay off. You wrote a whole bunch of unit tests, the functional tests passed, even your simulated load test didn’t reveal any problems. However, despite your hardest efforts the customer experiences enormous performance issues. Either they experience a very poor response time or the throughput isn’t as high as they’d expected for their customer base. Where do you start to identify the critical parts of your application? Today’s enterprise applications are not just client/server-based, green field projects. It’s not unusual that you end up integrating legacy applications, call a web service here and there, set up a connection pool to multiple database instances and interface with a message-based system. The only chance you have to make a meaningful statement about what is causing the problems is to measure it.

What comes in handy are tools to support your work. Whenever possible you should use the commercial (e.g profilers like JProbe)/open source tools you already have in place before building your own custom performance measurement tools. But sometimes this is not exactly what you need or you can’t convince your manager to buy one on short notice. Here’re some tools that I really like and helped me in identifying performance and stability bottlenecks or in making my results more transparent:

  • ManageEngine® Applications Manager: Applications Manager is an enterprise-ready and affordable applications management software which facilitates application server monitoring, database monitoring, server monitoring, website monitoring, service management, and custom application monitoring. In the free edition you can set up five monitors. Sometimes this is already enough for your purposes.
  • JAMon: A monitoring and profiling Java API that lets you easily gather performance statistics. Get min, max, average execution time, standard deviation and more with less than five lines of code. Furthermore, it comes with goodies like a Servlet filter to track HTTP requests, report functionality and a web application to view the results.
  • Google Chart API: You want to show your monitoring result in a nice graphic without integrating additional libraries and a minimal amount of work? The Google Chart API provides you with multiple chart types you can integrate in your apps by just embedding a URL within an tag in your webpage.

Two books that I found helpful:


Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Blog at
Entries and comments feeds.

%d bloggers like this: