When it come to free tools for monitoring Java applications the usual choices are JConsole and VisualVM. AppDynamics now provides a third option to help you with web application performance monitoring.
Both JConsole and VisualVM ship with the standard Java JDK. These application performance tools look at your application through the internals of the JVM run-time, so the metrics they provide are geared towards things like memory, threads, classes and KPI like JMX metric and MBeans.
The only drawbacks these tools have is their lack of application context and ability to run in live production environments continuously, so they can help developers and support teams pro-actively manage application performance 24/7.
AppDynamics addresses both limitations of JConsole and VisualVM. It looks at your JVM through the eyes of your application allowing you to monitor the performance of business transactions and associated code path execution whilst your JVM is running in production.
AppDynamics auto-discovers and maps the application tiers which your monitored JVM interacts with, giving you a breakdown of where response time is spent in your application. This means you see a high level view of what your application looks like with respect to application tiers like LDAP, 3rd party web services, databases, NoSQL data stores, caches and Message Buses.
Rather than see raw URL or service requests in your application, AppDynamics is able to classify these entities with business context so you can understand the business activity which flows through your application and JVM. This monitoring perspective allows you to track response time, Service levels and throughput of your business transactions, as well as drill down to their code execution.
When you identify a slow application request or business transaction you can drill down to see individual executions known as snapshots. In a single click, you can view the full code execution call stack of a business transaction and pin-point the associated latency across every class, method and interface that was invoked. Meaning you get full visibility of where time was spent in the JVM and code to help you resolve any bottlenecks.
AppDynamics allows the user to monitor and trend JVM JMX Metrics and Application MBeans in real-time so you can analyze how resource inside your JVM is being consumed by application requests.
With AppDynamics, you can now configure alerts on your application, business transactions or JVM performance. This allows you to manage application perforance pro-actively so you get notified as soon as any problems starts to occur.
AppDynamics provides support for all JVMs and application servers with Java 1.5 and above. This includes full framework and protocol support to give you maximum visibility into your Java application.
You're able to visualize and map JVM dependencies, automatically discovering and mapping of all tiers that service and interact with your java Application and JVM. This gives you a far superior high-level view into your application performance than other Java performance tuning tools.
You're also able to Monitor JVM health and Performance, understanding the health of your JVM with key Java profiling metrics like response time, throughput, exception rate, and garbage collection time as well as key system resource like CPU, memory, and disk I/O.