AppDynamics…A Freeware Competitor to Dynatrace, Foglight and Introscope

I had an interesting beginning discussion with AppDynamics. They are a competitor to Dynatrace, Quest Foglight and CA Introscope in the area of J2EE application visibility. They have a product called AppDynamics in both a freeware Lite Version and Enterprise Professional Edition that dig into the JVM and provide analysis and measurements of run-time performance.

The product is agent based. It’s a simple configuration in which you can modify the Tanuki Wrapper (wrapper.conf) to add a small set of parameters for start-up. It includes a web-based console interface which you can evaluate how much time is being spent where in the byte code. It’s pretty standard fair in terms of showing call trees and SQL statements. What I like is that it provides a quick and narrow window to HotSpots in the code so you don’t have to muck around with the interface. It also provides you the control to do deeper profiling (sampling) like Foglight does so that you can get a complete profile (with overhead of course). You can define User Experience thresholds (which they all provide as well), but it’s right there in plain site.

 

Beware that the freeware version is limited to 30 “Business Transactions” which are identical to starting points of a PurePath. It’s not just Servlet requests. I saw JSP and JS references as well. You can prune them down to account for your 30. You can also rename them. For example, the request (/webapps/blackboard/execute/courseMain) could be renamed Course Home Page. This way you could target your 30 most important pages and limit your profiling to just these 30. Of course this is only a per JVM basis. The enterprise version connects all of the JVMs together so that all tiers and and Continuous monitoring can take place.

 

There are other features in the Enterprise version which I haven’t been able to evaluate just yet. I will get an Enterprise license shortly. This includes the following features:

  • Distributed/SOA related bottlenecks
  • Deadlocks
  • Payload/Input Data related errors
  • Memory / GC Behavior Monitoring
  • Memory Leak Detection
  • Memory Content Analysis & Accessor Tracking
  • Object Instance Tracking & Thrash Detection
  • 24/7 Monitoring of Custom Caches
  • Correlated Event Data (Payload, User Data, Hardware)
  • Alerts & Notifications
  • Incident Queue
  • Incident Workbench
  • Other workflow related features

 

How to Set-It Up

First thing you need to do is download the freeware version. Send the zip file to your server that you plan to instrument. Unzip the packages (both the viewer and the agent are in one package). Then you will need to unzip both packages. I took the simple route and set up the agent under (/usr/local/appdynamics) and the viewer under the (/usr/local/appdynamics/viewer) directories.

Modify the Wrapper.Conf

It’s easiest to modify the Tanuki wrapper by adding the following parameters. Make sure to add the host IP for the viewer. In my case, I used the same server which I instrumented, but you do not have to.

wrapper.java.additional.25=-javaagent:/usr/local/appdynamics/javaagent.jar
wrapper.java.additional.26=-Dappdynamics.viewer.host=10.103.66.148
wrapper.java.additional.27=-Dappdynamics.agent.logs.dir=/usr/local/appdynamics/logs

Modify the Catalina.Policy

You will get a Security exception if you don’t add the following into the Catalina.Policy. It took me a solid 20 minutes to figure this one out. Luckily I’ve seen this with Foglight and Dynatrace in the past, so it was easy to overcome.

// AppDynamics Grant
grant codeBase "file:/usr/local/appdynamics/-" {
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.security.AllPermission;
permission java.io.FilePermission "*", "read,write,execute";
permission java.util.PropertyPermission "*", "read";
permission java.lang.RuntimePermission "getenv.*";
};
Advertisements

7 thoughts on “AppDynamics…A Freeware Competitor to Dynatrace, Foglight and Introscope

  1. App Man

    Nice post Stephen glad you liked AppDynamics Lite, looking forward to hearing your thoughts on AppDynamics Pro.

    btw – I think some of the images in your posts aren’t rendering correctly?

    Reply
  2. williamlouth

    Why bother with something that claims to be free and only works for 30 business transactions. That’s just ridiculous and clearly a lie.

    Our software allows you to measure transactions that have a latency of single digit microseconds and you can execute billions of them in the 30-45 minute time limit placed on the developer only (usage) edition.

    http://opencore.jinspired.com

    Reply
  3. Neal

    Nice & useful article…so what would you choose out of AppDynamics, Dynatrace, Quest Fogligh, CA Introscope? Is there like a comparison site that I could use to evaluate what to buy?

    Reply
    1. babyshark13 Post author

      Sorry for the crazy delay in responding. Just saw this on my comments list. You ask a really good question. I would say out of the list above, it would be dynaTrace. However, since my post I’ve spent some time working with New Relic. I really like the tool suite. Head to head: dynaTrace vs. New Relic, I would still say dynaTrace because it is so much more feature rich. I would keep New Relic in my tool belt of forensic tools.

      Reply
  4. Gretchen

    Thank you for any other excellent post. Where else could anyone get that type of information in such an ideal approach of writing?
    I have a presentation subsequent week, and I am on the search for such info.

    Reply

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s