# AppDynamics for Test Recommendations

## Overview

Cisco’s AppDynamics is a leading platform for monitoring the performance of your application. When you use ThousandEyes together with AppDynamics, you can reach full end-to-end visibility into the employee and customer digital experience.

This article describes how to configure the AppDynamics Bi-Directional Integration with ThousandEyes. The basic steps are

1. Check the [prerequisites](https://docs.thousandeyes.com/product-documentation/integration-guides/custom-built-integrations/appdynamics-for-test-recs#prerequisites).
2. In ThousandEyes, [create an integration](https://docs.thousandeyes.com/product-documentation/integration-guides/custom-built-integrations/appdynamics-for-test-recs#creating-your-integration).
3. Optionally, [create recommended tests](https://docs.thousandeyes.com/product-documentation/integration-guides/custom-built-integrations/appdynamics-for-test-recs#creating-recommended-tests) to monitor the services you rely on.
4. Optionally, [view the results](https://docs.thousandeyes.com/product-documentation/integration-guides/custom-built-integrations/appdynamics-for-test-recs#viewing-your-test-data) of your tests.
5. Optionally, [view the dashboard](https://docs.thousandeyes.com/product-documentation/integration-guides/custom-built-integrations/appdynamics-for-test-recs#adding-a-dashboard-widget) that provides an overview of your systems.

## Prerequisites

### License and Subscription Requirements

To use the features described in this document, you must have both of the following:

* An active license for an AppDynamics product with End User Monitoring (EUM) capabilities (as described in the AppDynamics [License Requirements](https://docs.appdynamics.com/appd/23.x/latest/en/end-user-monitoring/thousandeyes-integration-with-browser-real-user-monitoring#id-.ThousandEyesIntegrationwithBrowserRealUserMonitoringv23.4-LicenseRequirements)).
* An active subscription for ThousandEyes Network and Application Synthetics.

If you choose to integrate your ThousandEyes subscription with your AppDynamics license, your data may be transferred and processed in regions as described in the [ThousandEyes Privacy Data Sheet](https://trustportal.cisco.com/c/r/ctp/trust-portal.html?search_keyword=thousandeyes#/1610384661419206). For more information, see your applicable ordering documentation that includes the relevant privacy data sheet.

### Product Version Requirements

Your AppDynamics instance must be cSaaS and running build 23.4.x.

### AppDynamics Permissions

In AppDynamics, you must have the *Account Owner/Administrator* permission. For additional AppDynamics permissions, see [ThousandEyes Network Metrics in Browser RUM](https://docs.appdynamics.com/appd/23.x/latest/en/end-user-monitoring/thousandeyes-integration-with-browser-real-user-monitoring/thousandeyes-network-metrics-in-browser-rum).

### ThousandEyes Permissions

To create the integration, you must have an Organization Admin or Account Admin role in the ThousandEyes platform. To enable or activate test recommendations, you must have an Organization Admin role. For more information about ThousandEyes roles, see [Role-Based Access Control, Explained](https://docs.thousandeyes.com/product-documentation/user-management/rbac/role-based-access-control-explained).

## Creating Your Integration

To create a bi-directional integration with AppDynamics, do the following steps in the ThousandEyes platform:

1. Go to **Manage > Integrations > + New integration > AppDynamics**.
2. In the **Add AppDynamics Integration** dialog, enter the values for your AppDynamics instance:

| **Field Name**           | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**                 | Give your integration a unique name. Duplicate names are not permitted.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **AppDynamics Instance** | The path to your AppDynamics instance.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Auth Type**            | **Basic** or **OAuth Client Credentials**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|                          | <p>If you select <strong>Basic</strong>: Enter your AppDynamics username and password.<br><br>If you select <strong>OAuth Client Credentials</strong>, there are two steps you need to complete, one within AppDynamics, one within ThousandEyes.</p><ul><li><p>In AppDynamics:</p><ul><li>Create an AppDynamics <a href="https://docs.appdynamics.com/appd/21.x/21.3/en/extend-appdynamics/appdynamics-apis/api-clients#id-.APIClientsv21.2-Create_API_ClientCreatingAPIClients">API Client</a> to generate the <strong>Token URL</strong>, <strong>Client ID</strong> and <strong>Client Secret</strong>.</li></ul></li><li><p>In ThousandEyes, using the above, fill in:</p><ul><li><strong>Token URL</strong></li><li><strong>Client ID</strong></li><li><strong>Client Secret</strong></li><li><strong>Token</strong> - If you don’t have a token, click the <strong>Get Token</strong> link to generate one.</li></ul></li></ul><p><strong>Note</strong>: You can use the same OAuth Client Credentials for each application in AppDynamics; however, you need to generate a new <strong>Token</strong> per integration from ThousandEyes.</p> |
| **Select Services**      | <p><strong>Activate test recommendations</strong><br>Select <strong>Activate test recommendations</strong> if you want to use the AppDynamics Bi-Directional Integration to generate recommended tests in ThousandEyes.<br>or<br><strong>Connect to alert notifications service</strong><br>Select <strong>Connect to alert notifications service</strong> if you want to use the integration to send ThousandEyes alert notifications into AppDynamics. For more information, see the<a href="https://docs.thousandeyes.com/product-documentation/integration-guides/custom-built-integrations/appdynamics-for-alert-notifs"> documentation on the alert notification for AppDynamics</a>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                      |

3. When you’ve completed the fields in the **Add AppDynamics Integration** dialog, click **Test**.
4. If testing of your integration succeeded, click **Save**.

   If your integration didn’t pass the testing, check your settings in the dialog. Ensure that you have entered valid AppDynamics credentials.

   If the integration continues to fail the testing, contact the [AppDynamics Technical Assistance Center](https://www.appdynamics.com/support).
5. View your completed integration at **Manage > Integrations**. Note its status in the **Status** column, and the services you selected in the **Supported Services** column.

   If the **Status** column shows **Connected**, your integration is ready and you can start [using ThousandEyes test recommendations](#creating-recommended-tests).

## Creating Recommended Tests

{% hint style="info" %}
This section applies if you selected **Test Recommendations** when you created your integration.
{% endhint %}

Now that you have set up the integration, put it to work: The connection between AppDynamics and ThousandEyes brings information into ThousandEyes about the services that you use AppDynamics to monitor. With this information, the ThousandEyes platform recommends tests and test configurations to bring you full visibility into those services.

To set up recommended tests, do the following:

1. Go to **Network & App Synthetics > Test Settings**.
2. Click **Start Monitoring**.
3. Select AppDynamics under "Start with ThousandEyes based recommendations".

   The **Recommendations** dialog appears. It lists applications that you are monitoring in AppDynamics.
4. In the dialog, select the applications that you want to create ThousandEyes tests for.

   The next step in the dialog shows that application’s dependent services.
5. Select among the list of dependent services, and click **Configure Tests**.

   The next step in the dialog shows the **Global Settings** tab.

{% hint style="info" %}
Your settings in the **Global Settings** tab will apply to all the tests you are creating to the services you just selected.
{% endhint %}

4. Select the agents that should run the tests you are creating.

{% hint style="info" %}
A quick way to select appropriate agents is to use the built-in tags in the agent selection drop-down.
{% endhint %}

{% hint style="info" %}
For backend services, we recommend that you use Enterprise Agents for monitoring. For frontend services, we recommend that you use Cloud Agents for monitoring. For more information on agent types and their differences, see [Global Vantage Points](https://docs.thousandeyes.com/product-documentation/global-vantage-points).
{% endhint %}

5. Set the frequency at which the tests should run.
6. Give your monitoring package a name. By default, the ThousandEyes platform fills this field with the application name from AppDynamics. Then click **Review Package**.
7. \[Optional] If you want to override the global settings for individual tests only, you can do this now. If not, the configuration in **Global Settings** will apply to all the tests you are creating. You can also adjust your tests’ settings at any point in the future.
8. On the last screen of the dialog, review the selections you’ve made and the resources - tests and labels - that will be created. Click **Confirm and Deploy**.
9. Finally, view the test you’ve created. From the confirmation screen of the **Recommendations** dialog, click **Go to Test Settings**. Click the arrow next to your new test to see its configuration details.

   For detailed information about the **Test Settings** screen, see [Tests](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests).

## Viewing Your Test Data

{% hint style="info" %}
This section applies if you selected **Test Recommendations** when you created your integration.
{% endhint %}

Now that you have created the recommended tests, view the test results.

1. Go to **Network & App Synthetics > Views**.

   For information on the elements of the **Views** screen, see [Views](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/viewing-data).
2. Click the **Dependent Applications** tab to see a table of applications that you track in AppDynamics.

   In particular, check the **Application Health** column to see the health status of each application as evaluated in AppDynamics.
3. To see an application's dependent services, click the **View Service Dependencies** button in the application's row.
4. To go directly into AppDynamics, click the **View in AppDynamics** button for an application you want to investigate.

## Adding a Dashboard Widget

{% hint style="info" %}
This section applies if you selected **Test Recommendations** when you created your integration.
{% endhint %}

When you use the AppDynamics bi-directional integration, ThousandEyes automatically creates a dashboard widget that includes an overview of the health of the AppDynamics applications you are monitoring and the status of the tests you have deployed, as evaluated in AppDynamics.

To add the dashboard widget:

1. Create a new dashboard, or open an existing dashboard. For more information about creating dashboards, see [Dashboards](https://docs.thousandeyes.com/product-documentation/dashboards).
2. Click **+ Add Widget**.
3. Find the **Color Grid** widget, and drag it from the side panel onto the dashboard.
4. Once you place the widget on the dashboard, the configuration panel for the widget opens. Open the **Data Source** dropdown list, and select **AppDynamics Service Health**.
5. Open the **Metric** dropdown list, and select **AppDynamics Service Health**.
6. Make any additional configuration changes desired, and click **Save**.

   ![](https://1112912342-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4QARF6s57qxMrOHDTZ%2Fuploads%2Fgit-blob-49ce11e021ec9e08c3307bbf9e8d712f1dbc50a4%2Fappdynamics-service-health-widget.png?alt=media\&token=49ad5ef6-f63f-4dcb-b38f-73d6592d998e)
