AppDynamics Lite 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.
AppDynamics has worked hard at simplifying the hefty data that flows into the collection agent. The simplification is generally desirable but can obscure some of the lower layers. For instance, the tool watches for some of the most common architectural idioms like Struts and Spring, but it flags only the first calls to the system. If you're fielding the new requests with servlets or JSPs first, they'll be the only ones watched at the beginning. But the list of entry points discovered automatically can be edited to include anything that you think is worth tracking.
The discovery tool can be eye opening. I forgot my application was making occasional calls to load a piece of XML during configuration, but AppDynamics noticed it going by and added the external source as a server in the application. AppDynamics creates a cute graphic display of the various servers with lines illustrating the flow of data.
This self-discovery of the collection of machines that work together to deliver the information is incredibly valuable. The service emphasizes understanding how these machines work and don't work together, communicating the interactions visually with a picture of the network and the speed of the requests flowing between the machines.
The rest of the main display is given over to the current success or failure of the requests coming into the server. Fast responses get green bars, stalled responses get red bars, and pokey threads get mixed colors.
Underneath the red bars is more information about different methods and database queries that go into assembling the Web page. The time-consuming spots are flagged and easily identifiable.