Configuring Transaction Analytics
This document describes how to configure an analytics agent and view transaction analytics on the AppDynamics controller.
- 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: 184.108.40.206.
- Applications supported on Analytics Agent: Java, .NET.
- The analytics agent is compatible with controller version 220.127.116.11 and above.
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 controller dashboard. The following image provides a visualization of the process:
The following list describes the components in the image above:
- 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.
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 in the following figure:
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.
In the Analytics Agent section of the AppDynamics tile, choose Enable under Enable Transaction Analytics.
Paste in the Global Account Name and Access Key from the AppDynamics Controller license page.
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:
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... OK name requested state instances memory disk url
After deploying the tile, follow these steps to bind an application with the analytics agent to collect analytics data:
Note: The analytics agent is compatible with Java and .NET applications.
Set a JAVA system property on the application to forward data to analytics agent.
$ cf set-env TARGET-APP-NAME JAVA_OPTS "-Dappdynamics.analytics.agent.url=http://appdynamics-analytics.DOMAIN-NAME/v1/sinks/bt"
In the example above,
http://appdynamics-analytics.DOMAIN-NAMEis the URL of the analytics agent running in AppDynamicsPCFOpsMetrics-service-org org
Restage the application for the changes to take affect.
$ cf restage TARGET-APP-NAME
- For customers using SaaS controllers: Your controller is already configured to fetch data from SaaS event-service.
- For customers using an on-premise controller: Login as an admin in your controller and configure the event-service url and the controller key for authentication as shown in the below image. For any help with this configuration, contact AppDynamics support.
On your AppDynamics controller, follow these steps to configure the analytics collector for a target application.
- Click Analytics.
- 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.
- Select the checkbox to enable analytics data.
- Add transactions for which you wish to report analytics data.
- Optionally, 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.
- Generate some traffic for your application.
- Click Analytics on your AppDynamics controller.
- Click Add to list all configured business transactions.