While business transaction performance is the typical focus of a performance monitoring strategy, infrastructure performance can add insight into underlying factors in business transaction performance.
AppDynamics provides preconfigured application infrastructure metrics and default health rules to enable you to discover and correct infrastructure problems. You can also configure additional persistent metrics to implement a monitoring strategy specific to your business needs and application architecture.
In addition to health rules, you can view infrastructure metrics in the Metric Browser.and graphs in the browser can be particularly useful to understanding how infrastructure metrics correlate to business transaction performance.
What AppDynamics Considers "Infrastructure"
Application infrastructure includes:
- Application servers and IIS
- JVMs and .NET CLRs
The following diagram illustrates the infrastructure associated with a Java application environment.
The Java Agent provides both infrastructure metrics for the JVM and the App Server, and application metrics for your business application. When a Standalone Machine Agent is installed on the same machine, metrics are collected for CPU usage, disk I/O, network I/O, and memory usage.
The following diagram illustrates the infrastructure associated with a .NET application environment.
Infrastructure Metrics Can Help Identify Problems
Having the right infrastructure monitoring strategy is important because many times the root cause of application issues is most obvious by looking at infrastructure metrics. For example, the following infrastructure issues can slow down your application:
- Too much time spent in garbage collection of temporary objects
- Contention in connection pools
- Some other process spinning on the CPU
In all these cases, transaction snapshots are able to correlate the infrastructure metrics for the specific node so that you can identify the root cause of slow or stalled transactions. For example, from the Node Dashboard, you can view the JVM tab, the JMX tab showing the connection pool metrics, and the Hardware tab (when the machine agent is installed) respectively.
You can configure health rules on metrics such as garbage collection time, connection pool contention, or CPU usage to catch issues early in the cycle before there is an impact on your business transactions. In all cases, with the right monitoring strategy in place, you can be alerted to problems and fix them before user transactions are affected.
Use metrics in the Application Infrastructure Performance section of the Metric Browser in policies that fire when the metric value reports a critical level and perform an action, such as: send an email, start diagnostics, or perform a thread dump. If you have the Standalone Machine Agent installed, you can have the agent run a script on the machine to, for example, restart the application or JVM.
- Alert on Application Availability: Use the Application Infrastructure Performance > Tier Name > Agent > App > Availability metric. If you alert on Availability < 1, the policy fires when the application is not available on any of the nodes where it usually runs. You can create a policy that alerts you if even one of the nodes is down by creating a policy that fires when the Availability metric value is less than <number of expected nodes>. The Availability metric at the agent node level reports 1 only if the application is running and there are no connectivity issues between the agent and the Controller.
- Alert on Standalone Machine Agent Availability: Use the Application Infrastructure Performance > Tier Name > Agent > Machine > Availability metric. If Availability is less than 1, the agent is not reporting. The Machine Availability metric does not report the hardware status, just whether or not the Standalone Machine Agent is reporting.
Infrastructure Metric Collection Intervals
The collection interval for infrastructure metrics varies by environment, as follows
- Java Environment: JVM and JMX infrastructure metrics are reported at 60-second intervals. Every minute the agent reports the current value for that minute to the controller.
- Standalone Machine Agent: Machine agent metric collection intervals vary depending on the specific monitor being used.
- For AIX, HP-UX, Mac OS X and Z/OS, CPU and memory metrics are gathered every two seconds and averaged over a period of one minute. Machine agent network and disk metrics are gathered at one minute intervals.
- For Windows, Linux, and Solaris, all metrics are collected on one-minute intervals and aggregated over one-minute intervals.
- .NET Embedded Machine Agent: The .NET embedded machine agent collects IIS and CLR metrics every 60 seconds using Windows Performance counters. The update interval is configurable using the update-interval-in-secs property found in web.config.
Watch the Video
For full-screen viewing, click Utilizing JMX Metrics.