This page introduces you to the AppDynamics Application Intelligence Platform.
About the Application Intelligence Platform
The AppDynamics Application Intelligence Platform lets you monitor and manage your entire application-delivery ecosystem, from the mobile app or browser client request through your network, backend databases and application servers and more. It gives you a broad view of your application landscape but lets you drill down to the code execution level on a given application tier and node.
Application Performance Monitoring
At the tier level, AppDynamics gives you a view of the runtime operation of your code via an AppDynamics App Server agent. The agent detects calls to a service entry point at the tier and follows the execution path for the call through the call stack. It sends data about usage metrics, code exceptions, error conditions, exit calls to backend systems to the Controller, either a SaaS or on-premises:
To get started with application monitoring, see Agent Installation and Instrumentation.
Most application environments consist of more than a single application server. They may contain multiple, distributed, and interconnected servers and processes that participate in fulfilling a given user request. In this context, AppDynamics tracks transactions across distributed, heterogenous services.
Infrastructure Visibility with Database Monitoring
For greater visibility into your application delivery environment, you can add AppDynamics Database Monitoring to the deployment.
App agents can tell you about calls to backend databases, including errors and call counts. The Database Monitoring module extends that visibility to the workings of the database server itself. It gives you detailed information on query execution and performance, with an agent-less profile.
AppDynamics Server Monitoring adds to your view of the data center, with rich performance information on the performance of the machines and network in your environment.
In this deployment, the database agent collects information from the database servers and sends it to the Controller, which persists some of that information in the Events Service. Database analytics features may use the Events Service, the document storage component of the platform that is optimized for searching and storing of high volumes of information.
End User Monitoring for Client Experience
While server side monitoring can tell you a great deal about how end users experience your application's performance and especially how to improve that performance from the server side, end user monitoring can extend that insight all the way from the initial client request through to the response on the client device. With AppDynamics End User Monitoring, you can collect information on where in the world your requests are coming from and what devices and channels are being used, as well as the performance of your code once it's on your user's device. You can even investigate mobile crashes by seeing stack traces and other contextual data at the moment of the crash. And that data can be tied to business transaction data from the server side.
Application Analytics for Business Impact
How does the overall performance of your application environment affect your business? AppDynamics Application Analytics can help you understand how the performance of your application environment and end user applications ties to the business data of the transactions. It lets you sort, order, and understand the data that composes the business transactions. It also lets you drill into the varieties of log data that your environment generates. See Application Analytics for information about how to install and user application analytics.
The following figure shows a complete AppDynamics deployment, including the connection points between the agent-side components and the backend platform.
AppDynamics provides integrated support for certain Platform as a Service (PaaS) providers and other types of cloud environments. If your applications run in virtualized application hosting environments, such as Red Had Openshift or Pivotal Cloud Foundry PaaS, instrumenting the application may be as straightforward as adding the AppDynamics service to the virtual machine or using an agent-bundled base image.
For more information, see Cloud Services.
Instrumenting Your Environment
If you're the one to deploy AppDynamics, the first thing you'll do is install the AppDynamics agents in your environment. Depending the on the type of agent, they may connect to the Controller directly or to another AppDynamics platform service you are using.
For most of the agent types, you can use the Agent Download Wizard to quickly set up the agents. The wizards configures your platform connections for you.
Even in the simplest cases, however, you may sometimes need to modify the agent configuration or adjust your network components to accommodate the connections from that agents to the platform. For example, firewall rules or proxy servers in your environment may need configuration changes.
The following graphic shows the connections points for the platform, depending on whether you are using the on-premises or SaaS AppDynamics platform.
Use the Metric Browser in the controller UI to view all of the metrics that the agents report.
Most of the metrics relate to the overall performance of the application or business transaction (load, average response time, error rate, etc.) or of the application server infrastructure (percentage CPU busy, percentage of memory used, etc).
- You can create special metrics called information points to report on how your business (as opposed to your application) is performing. For example you could set up an information point to total the revenue from the purchase on your web site of a certain product or set of products. You can also use information points to report on how your code is performing, for example how many times a specific method is called and how long it is taking to execute.
- You can create extensions that use the machine agent to report custom metrics that you define. These metrics are base-lined and reported in the controller, just like the built-in AppDynamics metrics.
You can access all the metrics programmatically, as well query and manipulate the application environment, using the AppDynamics APIs.
Baselines and Thresholds
The AppDynamics Platform uses both self-learned baselines and configurable thresholds to help identify application issues. A complex distributed application has a large number of performance metrics and each metric is important in one or more contexts. In such environments, it is difficult to:
- Determine the values or ranges that are normal for a particular metric
- Set meaningful thresholds on which to base and receive relevant alerts
- Determine what is a "normal" metric when the application or infrastructure undergoes change
For these reasons, anomaly detection based on dynamic baselines or thresholds is one of the most important features of the AppDynamics platform.
The AppDynamics platform automatically calculates dynamic baselines for your metrics, defining what is "normal" for each metric based on actual usage. Then the platform uses these baselines to identify subsequent metrics whose values fall out of this normal range. Static thresholds that are tedious to set up and, in rapidly changing application environments, error-prone, are no longer needed.
You can create health rules with conditions that use baselines, allowing you to trigger alerts or kick off other types of remedial actions when performance problems are occurring or may be about to occur. See Alert and Respond and Health Rules and Dynamic Baselines for more detail.
AppDynamics thresholds help you to maintain service level agreements (SLAs) and ensure optimum performance levels for your system by detecting slow, very slow, and stalled transactions. Thresholds provide a flexible way to associate the right business context with a slow request to isolate the root cause. See Transaction Thresholds.
Health Rules, Policies, and Actions
AppDynamics uses dynamic baselining to automatically establish what is considered normal behavior for your application. Then you can set up health rules against those normal baselines (or use other health indicators) to track non-optimal conditions. A health rule might be "create a critical event when the average response time is four times slower than the baseline."
Policies allow you to connect such problematic events (like the health rule critical event) with actions, that can, for example, trigger alerts or remedial behavior, addressing the system's issues before your users are affected.
AppDynamics supplies default health rules. You can customize the default health rules and create new rules specific to your environment.
The out-of-the-box health rules test business transaction performance as follows:
- Business Transaction response time is much higher than normal: Defines a critical condition as the combination of an average response time greater than the default baseline by 3 standard deviations and a load greater than 50 calls per minute. This rule defines a warning condition as the combination of an average response time greater than the default baseline by 2 standard deviations and a load greater than 100 calls per minute.
- Business Transaction error rate is much higher than normal: Defines a critical condition as the combination of an error rate greater than the default baseline by 3 standard deviations and an error rate greater than 10 errors per minute and a load greater than 50 calls per minute. This rule defines a warning condition as the combination of an error rate greater than the default baseline by 2 standard deviations and an error rate greater than 5 errors per minute and a load greater than 50 calls per minute.
For more information, see Alert and Respond.
While business transaction performance is the typical focus of a performance monitoring strategy, monitoring infrastructure performance can add insight into underlying factors in business transaction performance. AppDynamics can alert you to the problem at the business transaction level and at the infrastructure level.
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. In this context, theand graphs can be particularly useful to understanding how infrastructure metrics can correlate or relate to business transaction performance.
Integrating and Extending AppDynamics
AppDynamics provides many ways for you to extend AppDynamics Pro and integrate metrics with other systems. The AppDynamics Exchange contains numerous extensions you can download, and you can develop your own if you can't find what you need.
Extensions for AppDynamics come in the following categories:
- Monitoring Extensions add metrics to the existing set of metrics that AppDynamics agents collect and report to the Controller. These can include metrics that you collect from other monitoring systems. They can also include metrics that your system extracts from services that are not instrumented by AppDynamics, such as databases, LDAP servers, web servers, or C programs. To write your own monitoring extensions, see Extensions and Custom Metrics.
- Alerting Extensions let you integrate AppDynamics with external alerting or ticketing system and create custom notification actions. To learn how to write your own custom notification see Build a Custom Action. Also see Email Templates and HTTP Request Actions and Templates.
- Performance testing extensions consist of performance-testing extensions such as Integrate AppDynamics with Apica.
- Cloud Auto-Scaling extensions let you integrate AppDynamics with cloud-based systems, such as AWS or Pivotal. Cloud connectors are required for auto-scaling features in AppDynamics. To learn how to write your own cloud auto-scaling extension, see Custom Cloud Connectors.
- Built-in integration extensions are bundled into the AppDynamics platform and only need to be enabled or configured. These include:
For creating your own custom extensions and integration components for AppDynamics, see the AppDynamics API information.