InfoWorld review: Free Java application performance monitors
Innovative tools from AppDynamics and New Relic make it easier than ever to monitor the performance of complex websitesFollow @peterwayner
The code is polished, the site map is frozen, and the UI is dripping with gorgeous colors. Everything is perfect -- aside from worrisome reports that some beta testers are finding that buttons are slow or even completely unresponsive. The AJAX calls that seemed so snappy in the lab were working well -- except for those inexplicable moments when they aren't. And those moments can't be duplicated.
The best way to find the bottleneck is by adding telemetry to every part of the stack from top to bottom and tracking every request from beginning to end. The tools from CA Wily and Mercury Interactive (now part of Hewlett-Packard) were the first generation of monitoring software that made it possible to keep the biggest Java sites humming along. They deployed a collection of monitoring agents in a single JAR that slyly insinuated itself into the class loader, where it automated the process of timing the most important calls. Then the data was uploaded to a monitoring server that offered a dashboard for watching everything at work.
[ Groovy and JRuby lead a strong field, with Scala, Fantom, and Jython following behind. See InfoWorld's "Top five scripting languages on the JVM." ]
These solutions are now more than a decade old, and their code is well established in many of the biggest software stacks in the business. That means the time is ripe for another round of innovation. In this round, several new companies are dashing into the arena with tools that make application monitoring simpler than ever and that offer big installations even more abilities to track data flows across machines.
For this review, I concentrated on two newer product lines with substantial free versions that are perfectly adequate for small sites and initial testing. The tools are also working advertisements for fuller versions that monitor multiple servers with different processes. While many people will be well served by the free versions, many others will find the full versions seductive enough to consider upgrades.
These products come from two companies that are relatively new, but the people involved are quite experienced. Both AppDynamics and New Relic are run by teams that include a large number of people who used to work for Wily.
The first generation of application monitoring tools focused on the server, a perfectly natural place to begin and that works well until there are dozens or hundreds of servers. As websites grow more complicated and roll together the data from many Web services and Web 2.0 sources, it's harder and harder to parse a table of data about all of the servers working together to create their Web pages. Instead of focusing on the servers as independent entities and counting their CPU cycles, AppDynamics looks for incoming requests for information and tracks the flow of data through the server farm that completes the requests.
The free version offers a peek at everything that the full product can do. Adding the collection agent to a server is as simple as adding the right JAR file to the path and modifying the startup parameters for the JVM with a
javaagent parameter. The agent takes it from there, looking for all of the significant entry points in the stack, cataloging all the requests, and watching their performance. This data is relayed to a separate agent, the AdLite Viewer, which chews up the information and delivers it through port 8990 in HTML. You watch in a window of your browser.