AppDynamics is positioning their product for monitoring Java environments as an application-context-aware replacement for tools like JConsole and VisualVM with an ability to run in production environment continuously. As for me it's questionable whether any monitoring or profiling tool that requires javaagent installation could be running in production with no harm to application's performance and stability.

From architectural point of view AppDynamics solution has a server side which they call Controller and the agents for Java, .Net or PHP applications. As I've already claimed javaagent should be added to every java application that needs to be monitored. Once instrumented JVM is started it connects to AppDynamics Controller and sends monitoring data.

There are 2 types of Controllers: SaaS and On-premise. In order to use SaaS Controller you must register at AppDynamics and wait a while for registration to complete. After that your personal url that will look like https://YourCompany.saas.appdynamics.com will be activated. The url is bringing you to your customizable dashboard where you can add and configure your monitored applications.

Only on-premise AppDynamics solution could be seriously considered to be used in corporate IT world because no bank or stock exchange will expose their financial data to the internet. It is not easy to find out how to download an on-premise AppDynamics solution on their official web site so thanks to Matias from AppDynamics support to send me the right link. By the way Matias has contacted me like 3 times more during the trial period "just to get a feedback".

The price for AppDynamics version is still a mystery for me. Moreover I think that AppDynamics is a java chauvinistic company and the next quotation will explain you why: "AppDynamics is priced per Agent. For Java, each JVM is counted as Agent. For .NET agent, each Windows OS instance used to run .NET apps is counted as an Agent." In short: for .Net you pay per OS, for Java you pay per JVM.

AppDynamics is application server oriented solution and it has a lot of out-of-the-box integrations for dozens of Java enterprise components and products. There's a free version called AppDynamics Lite as well as paid one called AppDynamics Pro. In my case even an on-premise solution didn't work as I simply have no permissions to install anything on my customer's servers and even if I install Controller on my local machine I can't establish a communication between JVMs running on well-secured remote servers and my local machine.

I would recommend Java developers and DevOps guys to consider AppDynamics Lite on-premise solution especially if you are interested in performance monitoring of your applications. If you are ok with adding javaagents to your applications classpath you can also consider products like New Relic and Optier as alternatives for AppDynamics: they are all business transactions oriented and even their UIs look the same.

Have a very dynamic day,

Vladimir Krasilschik @ Kupchino Labs,
Saint-Petersburg, Russia

Links: