Configuring Transaction Analytics

This document describes how to configure an analytics agent and view transaction analytics on the AppDynamics controller.

Feature Snapshot

  • Transaction Analytics feature is supported on v1.1.1 and later.
  • If your AppDynamics controller has license for Analytics monitoring, you can monitor application analytics.
  • Supported Analytics Agent version:
  • Applications supported on Analytics Agent: Java, .NET.
  • The analytics agent is compatible with controller version and above.

Understand Transaction Analytics


The application agent forwards analytics data to the analytics agent, which sends the data to the event service. The controller queries the event service to fetch the analytics data and renders it on the controller dashboard.

Analytics Agent Working

  • AppDynamics App Agent: Application Analytics relies on the same app agents that AppDynamics APM uses. If you already use AppDynamics APM, you likely already have these deployed to your monitored applications.
  • Analytics Agent: The Analytics Agent collects data from one or more app agents and sends it to the Events Service.
  • Analytics Plugin (AP) to the app agent: The Analytics Plugin extends app agent functionality so that it can collect and forward data to the Analytics Agent.
  • Event Service: The event service is an unstructured document store which acts as a place holder for analytics data. If you do not already have an event service running, contact AppDynamics support to get one.
  • Controller: The controller queries the event service and renders analytics data to the controller dashboard.

Deploying Analytics Agents to Multiple Nodes

A real-world scenario is unlikely to consist of a single monitored node, as shown in the diagram above. It usually consists of many applications deployed over many hosts.

There must be at least one Analytics Agent in the monitored environment, although multiple agent plugins collecting only transaction data can share a single Analytics Agent, as shown below:

Realworld Scenario

In this example, AppServerHost1-3 collect only transaction data, and only app agents are required. Each one connects to the Analytics Agent on AppServerHost4. The analytics agent forwards the transaction analytics data to the event service. Finally, the controller fetches the analytics data from the event service and renders it to the controller analytics dashboard.

Follow the steps below to configure Transaction Analytics for your PCF applications.

Step 1: Configure Tile for Analytics

  1. In the Analytics Agent section of the AppDynamics tile, choose Enable under Enable Transaction Analytics. Analytics Config For Tile GUI

  2. Paste in the Global Account Name and Access Key from the AppDynamics Controller license page. License Page

  3. Specify the AppDynamics Analytics Event Service URL if you already have one. If you do not have one, contact AppDynamics support. The Analytics Event Service URL is in the following format:

  4. Click Save.

  5. After the tile updates successfully, you can verify that each analytics agent runs as a CF application in the AppDynamicsPCFOpsMetrics-service-org org. The name of each analytics agent is AppDynamicsAnalytics, with a route appdynamics-analytics.DOMAIN-NAME. See the following example:

    $ cf target -o AppDynamicsPCFOpsMetrics-service-org
    $ cf apps
    Getting apps in org AppDynamicsPCFOpsMetrics-service-org / space AppDynamicsPCFOpsMetrics-service-space as admin...
    name                       requested state   instances   memory   disk   url

Step 2: Bind Application to Analytics Agent

After deploying the tile, follow the steps below to bind an application with the analytics agent to collect analytics data.

Note: The analytics agent is compatible with Java and .NET applications.

  1. Set a JAVA system property on the application to forward data to analytics agent.

    $ cf set-env TARGET-APP-NAME JAVA_OPTS ""
    In the example above, http://appdynamics-analytics.DOMAIN-NAME is the URL of the analytics agent running in the AppDynamicsPCFOpsMetrics-service-org org.

  2. Restage the application for the changes to take effect.

    $ cf restage TARGET-APP-NAME

Step 3: Configure Controller to Fetch Data from Event Service

  • For customers using SaaS controllers: Your controller is already configured to fetch data from a SaaS event service.
  • For customers using an on-premise controller: Log in to your controller as an admin and configure the event service URL and controller key for authentication, as shown below.


For help with this configuration, contact AppDynamics support.

Step 4: Configure Analytics Collector on the Controller

On your AppDynamics controller, follow these steps to configure the analytics collector for a target application.

  1. Click Analytics. ConfigureAnalyticsCollector

  2. From the Configure Analytics for Applications drop-down, choose the same target application for which you set the JAVA system property in the previous step.

  3. Select the checkbox to enable analytics data.

  4. Add transactions for which you wish to report analytics data. enter image description here

  5. (Optional) Configure the HTTP Data Collectors and Transactions for GUID Injection fields. For more information, see the AppDynamics documentation:

    • Configure HTTP Data Collectors: This enables collection of additional business data using HTTP Data Collectors.
    • Configure Transactions for GUID Injection: By configuring business transactions for GUID Injection, you can correlate logs to specific business transaction requests. This can be helpful when you see slow transactions and the call graph does not give you enough information to get to the root cause. You can use this feature to get the full context related to a failed or slow transaction. Optional Fields

Step 5: Analyze Business Transactions Using Analytics

  1. Generate some traffic for your application.

  2. Click Analytics on your AppDynamics controller. Analytics Tab

  3. Click Add to see a list of all configured business transactions. Analytics Data

Create a pull request or raise an issue on the source for this page in GitHub