Like every new technology, the AppDynamics Application Intelligence Platform has its own special view of the world. This topic provides an orientation to the basic essentials of the AppDynamics view and its accompanying lexicon. It also offers some videos and links to topics that go into more depth.
What is the AppDynamics Application Intelligence Platform?
The AppDynamics Application Intelligence Platform consists of a Controller and one or more application agents. You instrument an application that you want to monitor with one or more agents, which collect real-time metrics about the application's performance and report them to the Controller. The Controller stores, processes, and analyzes these metrics. You see the metrics when you log into the Controller UI from a Web browser. The Controller can be the AppDynamics SaaS Controller or an on-premise Controller installed at your site.
There are different application agents for different application platforms and environments. AppDynamics also provides a machine agent, which reports performance metrics about an application server's hardware, operating system and network. See Supported Environments and Versions for details.
Application Environment Modeling in AppDynamics
AppDynamics presents performance information based on its model of your application environment. This environment can be made up of application severs, databases, middleware, and other entities that provide the related services of a logical application. The basic unit in the model (and the basic unit of your environment that is instrumented by an agent), is called a node. What a unit actually is in your environment depends on the underlying application type. For example, the Java Agent instruments a JVM, the .NET agent instruments a CLR, and the Node.js agent instruments a Node.js process.
Nodes are organized into tiers. Tiers are logical constructs composed of one or more identical nodes. Tiers are organized into business applications, sometimes just called applications.
When a business application performs a user request, traffic flows among tiers, usually to backends such as databases and remote services. The agents do not instrument backends directly but they do monitor flows to them.
For more information about the model, see AppDynamics Concepts.
Every user request to an application is modeled as a business transaction. The agent automatically detects the business transactions in a business application, but you can customize the automatic detection mechanism for your application environment.
A single complex business transaction can be distributed over many tiers, which may be built on different platforms.
The Controller UI presents the most popular performance metrics in a series of built-in dashboards that correspond to different aspects of the model: application, tier, node, business transaction, database, remote service, etc. The dashboards display these popular metrics (called KPIs for key performance indicators) graphically through flow maps, scorecards and graphs over the time range that you select.
The agents report many more metrics than just the KPIs. You can create custom dashboards that display only the metrics that you are interested in. You can create several custom dashboards for different audiences in your organization.
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 your total revenue for 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 also 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 REST API.
Snapshots give you a detailed picture of your application at a certain point in time. They usually include call graphs that allow you to drill down to the line of code that may be causing performance problems. The most common snapshots are transaction snapshots.