The JMX console provides a standard interface to monitor the health, performance and resources of a Java Virtual Machine (JVM). JMX Monitoring is done in real-time by querying data from “Managed Beans” (MBeans) that are exposed via a JVM port (the JMX console). An MBean represents a resource running inside a JVM and provides data on the configuration and usage of that resource. MBeans are typically grouped into “domains” to denote where resources belong to.
AppDynamics helps you with JMX Monitoring by querying the most useful JMX metrics out of the box to ensure you can monitor the common resources which can impact application performance.
Drill into database connection pool bottlenecks by reviewing how frequently database connections are used and utilized by your application relative to the pool limits enforced by JVM container configuration.
Query and report any MBean from your application during JMX Monitoring to gain real-time visibility of custom metrics which you may have implemented as part of your application deployment.
Identify what business transactions, classes and methods are responsible for the consuming JVM resource such as thread pools and database connection pools.
With AppDynamics a user can trend and correlate metrics from the related Cassandra Cluster at the time when a slow business transaction was executing. This visibility and trending helps the user understand what state the Cassandra Cluster was in along with key events and pending tasks that occurred (e.g. compaction). Thread Pool Utilization and Column Family activity can also be monitored so the user can troubleshoot what was impacting query performance. For example, the below screenshot show the number of CompletedTasks (green) versus the number of PendingTasks (red) so the user can rapidly understand if tasks are being queued in Cassandra.
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 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.
Distributed Business Transaction Tracing enable an advanced tag-and-follow tracing of distributed transactions across your JVMs. You gain a simple, intuitive view of how a distributed business transaction executes and where bottlenecks exist. And finally, you can troubleshoot Java Code Latency in Minutes, getting full visibility of Java code execution as business transactions and requests are processed by the JVM. This allows you to isolate latency and pinpoint its root cause in minutes.
In regards to JMX trending, you can get a comprehensive metrics viewer that allows you to correlate, trend and analyze key metrics from your JVM and Container (via JMX) as well as metrics via custom MBeans, as well as detect and troubleshoot memory leaks and object thrash issues, even under production load.