What happened to the Open Source performance monitoring and analysis tools

Mark Bakker

In my current position as Performance Engineer and in my past position as a Middleware Architect I did quite some work with closed source performance monitoring and analysis tools (i.g. CA Wily and later AppDynamics).
These tools are both expensive but also do quite a good job most of the times. In the same field there are more tools, but all in the same price range for as far as I know.
To name some: Foglight, Dynatrace, Newrelic, JXInsight, Tivoli Performance Viewer, Compuware Gomez.

Around 2006 several initiatives to create open source performance monitoring tools for java production environments started to appear.

This was mainly because AOP (Aspect Oriented Programming), the technology used in most of these products, was getting attention in the market and there were quite some developments in that area at the time.

I am interested to see how the open source community around these kind of products is evolving. The outcome is quite surprising…

The main reason I am interested in tools in this area is to be able to pinpoint problems in an Acceptance or Production environments very quickly, because this saves (big) enterprises a lot of money.

The main reason I am interested in open source tools is to see if we are able to create a complete open source java hosting stack which is enterprise production ready.

Without adding a lot of extra license and/or support costs we don’t have to consolidate IT anymore. We will be able to do application hosting for each specific business unit separately and focus on the continuous improvement for that business unit alone. Without big boundaries between the business unit and IT. This kind of boundaries are most times created because of cost efficiency. Think about consolidation and architecture guidelines. Not having to think about licencing costs will help us in helping enterprises to become agile.

During a knowledge exchange session (XKE) at Xebia we first created a requirements list to select tools in the same area to be able to compare them.

The requirements so far:

  1. The tool should measure production and acceptance environments with low (<= 5%) resource usage overhead.
  2. The tool should be able to pinpoint (potential) problems in the running applications as quickly as possible.
  3. The problems that should be detected: high resource consumption of particular code blocks, memory leaks and the location of the leak, blocking code blocks which block other threads, slow calls to back ends (i.e. web services, databases).
  4. The environments the tools should run in are the following application servers: IBM Websphere, Oracle Weblogic, JBoss, Tomcat, Glassfish.
  5. The problems should be made visible in such a way that the root cause can be found as quickly as possible. The most valuable will be to see complete business transaction flows over all JVM’s, with real-time flow states and measurement readings.
  6. The tool should be easy to install, i.g. just use a simple agent that connects it to a server. The goal should be to leave the code base unchanged.

Before the session I did some homework and I searched the internet for these kind of monitoring tools. During our knowledge exchange session we had a brainstorm session and came to the following list of Open Source tools:

Type Name Active development Possible usability? Costs Commercial support possible?
OS Glassbox No (last in nov. 2008) Yes - Maybe
OS Infrared No (last in jan. 2010, between 2006 – 2010 none) Yes - Maybe
OS Profiler4j No (last in 2006) No, more are profiler - No
OS JAMon/ JARep No (last in 2010) No, no runtime aspects, code has to change - No
OS VisualVM + BTrace Yes No, does only run in JDK6 and higher, no complete visual integration. Yes
Closed SourceFree in dev. env. OpenCore Yes Yes, but is not open source, only low cost in development environment. None for development environment, commercial for production environment, see JXInsight. No

This list is as complete as we were able to come up with, if you know more and eventual better open source tools please let us know!

After evaluating all products on the lists (just a paper evaluation) we only see Glassbox and Infrared as a real Open Source solution in this area. But both (at least Glassbox) are not actively developed anymore. Of course because both products are open source it will be possible to restart development on one of the products.

It is interesting why both projects are not active anymore. I spent some time to find out why. This is what I found out:

What happened to Glassbox; the first developer mentioned is the VP of Engineering at Glassbox David Pickering. He has left the Glassbox company in 2009. And is now VP of Engineering at iWin, a company with a different focus. The second one mentioned is Ron Bodkin, he left Glassbox in 2007 and was the founder of the Glassbox company, he became VP of Engineering at Quantcast, so also his focus has moved. This looks like the main reason there is no active development on Glassbox anymore.

What happened to Infrared; the first developer mentioned on the project member list at SourceForge is Binil Thomas, he worked for Tavant Technologies at the time Infrared was created. Other members on the same list also worked for Tavant in that time. Most are now working for different companies. It looks that Tavant Technologies was no longer interested in this space. The last 2.6RC1 release from Infrared was created in 2010, at a time Binil was working for Ronin Capital. Since 2011 he is working for AppDynamics, this is a commercial vendor in this area and looks like the main reason the 2.6RC1 release never came to a full release, but this is something I am guessing of course.

What’s next

We will test both Infrared and Glassbox to see if one of them is still a good choice. We will start with Infrared because this one has been the most active project in the past and it has been maintained the longest, until 2010. After this we will see if one of these products can be a competitor for the commercial products in this area.

Many thanks to my colleagues Adriaan Thomes and Sander Hautvast for helping me with the brainstorm session.

Comments (13)

  1. Gérald - Reply

    June 23, 2011 at 9:01 am

    Nice article.

    What about?
    http://www.jeeobserver.com/
    http://code.google.com/p/javamelody/
    http://code.google.com/p/javasimon/
    Spring Insight

  2. Rody - Reply

    June 23, 2011 at 11:02 am

    Hello,
    While it is not a comprehensive analysis tool, Javamelody (http://code.google.com/p/javamelody/) is quite handy to monitor JEE application resources.

    You can monitor general JVM performance, JDBC connections, Guice/Spring Service, EhCache performance.... and others.

    (and sorry for my bad english.....)

  3. Kamal Govindraj - Reply

    June 23, 2011 at 3:23 pm

    Hello Mark,

    I am one of the initial developers of InfraRED. It was developed by a team in Tavant for internal use and then open sourced. The initial team moved onto other projects, we supported it for a while then lost interest. I keep going back to it every time I have to deal with a performance problem.

    Spring Insight does offer similar features with a much more polished UI and seamless setup. So for people how are on tomcat that would probably be a good choice.

    I had set up a repo on github (https://github.com/gkamal/infrared/commits/master) with the unreleased version of the code (build migrated to maven2) and a few more minor changes. There is also a fork with a GWT based UI - can't seem to find the link right now.

    I am willing to help out if there is interest in reviving it.

    Regards,
    Kamal

    • Mark Bakker - Reply

      June 24, 2011 at 8:48 am

      Kamal,

      Can you also specify how I can compile it?
      I don't know which maven repo you used and what to compile first.

      Kind regards,

      Mark

  4. Mark Bakker - Reply

    June 24, 2011 at 8:19 am

    Hi Kamal,

    Thank you for your reply. We missed Spring Insight, mainly because it can not run inside Websphere or Weblogic. That is the main target platform for most Enterprise customers.
    For the Development and Test environment it can of course help a lot.

    I will stay in touch with you ant let you know if we want to continue with this code, you can be of great help of course!

    King regards,

    Mark

    • Kamal - Reply

      January 13, 2012 at 7:17 am

      Hi Mark,

      Sorry, I wasn't tracking the comments on this. Came across this today again and noticed your reply.

      My mail id is kamal at tenxperts dot com. In case you are still interested in this please send me a mail and I will help you with the build / setup etc.

      Regards,
      Kamal

  5. Mirko Novakovic - Reply

    July 14, 2011 at 12:22 am

    Hi Mark,

    there are major differences between the APM tools you mentioned like dynaTrace, Introscope, AppDynamics etc.

    I would say that there are approx. 4 generations of APM architectures if you look at the last 10 years. Tools like Glassbox etc. are from an architecture point of view in the 2nd generation - so you have a very simple byteocode instrumentation mechanism (AOP based) and no cross JVM/protocol functionality.

    With the newest generation like AppDynamics you even do not have a lot of bytecode instrumentation and a lot of intelligence in the agent/server to help you discover problem in production environment without lots of overhead. Even memory leaks can be auto-discovered.

    Prices alos differ a lot - just had a PoC with 7 major APM vendors and the prices varied beween 66K and 2.2M EUR for a bigger environment.

    There is also a free addition of AppDynamics: http://www.appdynamics.com/lite.php - just one JVM supported but still usefull for firefighting.

    Mirko

  6. kannan - Reply

    October 20, 2011 at 6:04 pm

    Hi Mark , Any update on the trial for an open source performance management tool

  7. Mathilde Mcpheron - Reply

    December 13, 2011 at 5:09 pm

    Oh my goodness! a tremendous article dude. Thanks Nonetheless I'm experiencing difficulty with ur rss . Don't know why Unable to subscribe to it. Is there anybody getting equivalent rss drawback? Anybody who is aware of kindly respond. Thnkx

  8. Ravi GIll - Reply

    April 19, 2012 at 10:18 pm

    Have you tried Hyperic from vmware ?

  9. Ivan Senic - Reply

    August 17, 2015 at 12:27 pm

    Just wanted to mention the inspectIT tool.. It recently became completely open source (https://github.com/ivansenic/inspectIT). It provides complete and detailed call graph with contextual information, there are many out-of the box sensor for database calls, http monitoring, exceptions, etc.. Worth trying out..

    • Ivan Senic - Reply

      August 17, 2015 at 2:34 pm

      Correct link to the inspectIT core repository is https://github.com/inspectIT/inspectIT.. In the comment link of my fork is written by mistake..

    • Ivan Senic - Reply

      August 17, 2015 at 2:34 pm

      Just wanted to mention the inspectIT tool.. It recently became completely open source (https://github.com/inspectIT/inspectIT). It provides complete and detailed call graph with contextual information, there are many out-of the box sensor for database calls, http monitoring, exceptions, etc.. Worth trying out..

Add a Comment