---
title: "Configure the AppDynamics data source | Grafana Enterprise Plugins documentation"
description: "Learn how to configure the AppDynamics data source for Grafana."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Configure the AppDynamics data source

This document explains configuration options for the AppDynamics data source in Grafana.

## Before you begin

Before you can configure the AppDynamics data source, ensure you have the following:

- Grafana 11.6.7 or later.
- The `Organization Administrator` role in Grafana to add data sources.
- The AppDynamics data source plugin installed. For installation instructions, refer to [Install Grafana Enterprise plugins](/docs/grafana/latest/administration/plugin-management/#install-grafana-enterprise-plugins).
- An [AppDynamics](https://www.appdynamics.com/) account.
- A user or API client with `view` access to **Account**, **Applications**, **Databases**, and **Analytics** in AppDynamics.
- To use Analytics queries, an [Analytics Events API key](https://help.splunk.com/en/appdynamics-saas/analytics/26.8.0/analytics/deploy-analytics-with-the-analytics-agent/analytics-and-data-security) with both the **Manage Schema** and **Query Custom Events** permissions under **Custom Analytics Events**. The **Query Custom Events** permission is required to run Analytics queries. The **Manage Schema** permission is required because Grafana calls the `/events/schema` endpoint during the connection test and query editor autocomplete, so without it the connection test fails.
- A [Grafana Cloud Pro or Advanced](/pricing/) plan or an [activated Grafana Enterprise license](/docs/grafana/latest/administration/enterprise-licensing/).

### Security considerations

Keep the following security best practices in mind when configuring the AppDynamics data source:

- **Least privilege:** Create a dedicated read-only role in AppDynamics (for example, `grafana_readonly`) with only `view` permissions. Don’t reuse administrator accounts or roles that grant write access.
- **Credential storage:** Grafana encrypts sensitive values such as passwords, client secrets, and API keys using `secureJsonData`. Don’t store credentials in plain text configuration files or version control.
- **API client authentication:** When possible, use API client authentication instead of basic authentication. API client secrets can be rotated independently without changing user passwords.
- **Analytics API keys:** The Analytics API key is stored and transmitted separately from your Metrics credentials. Generate a dedicated key with the minimum required [Analytics permissions](https://help.splunk.com/en/appdynamics-saas/analytics/26.8.0/analytics/deploy-analytics-with-the-analytics-agent/analytics-and-data-security).
- **TLS verification:** Keep **Skip TLS Verify** disabled in production environments to ensure encrypted and authenticated connections to your AppDynamics controller.
- **Network access:** Ensure your Grafana server can reach the AppDynamics controller over HTTPS (port 443). For private networks, use [Private data source connect (PDC)](/docs/grafana-cloud/connect-externally-hosted/private-data-source-connect/) or the [Secure Socks Proxy](#secure-socks-proxy) instead of exposing your controller to the public internet.

## Add the AppDynamics data source

For general information on installing and managing plugins and data sources in Grafana refer to the following documents:

- [Install Grafana plugins](/docs/grafana/latest/administration/plugin-management/#install-grafana-plugins)
- [Plugin management](/docs/grafana/latest/administration/plugin-management/)
- [Data source management](/docs/grafana/latest/administration/data-source-management/#data-source-management)

To install the AppDynamics data source plugin, refer to the [AppDynamics installation page](/grafana/plugins/dlopes7-appdynamics-datasource/?tab=installation).

> Note
> 
> You must install the AppDynamics data source plugin prior to adding and configuring the AppDynamics data source. The plugin connects you to the data source.

After you have installed the AppDynamics plugin, complete the following steps to add the AppDynamics data source:

1. Click **Connections** in the left-side menu.
2. Enter `AppDynamics` in the search bar.
3. Select the **AppDynamics data source** tile.
4. Click **Add new data source** in the upper right.
5. You are taken to the **Settings** tab where you set up your AppDynamics configuration.

## AppDynamics configuration options

The following general settings are available:

Expand table

| Setting     | Description                                                                                            |
|-------------|--------------------------------------------------------------------------------------------------------|
| **Name**    | The display name for this data source. This is how you refer to the data source in queries and panels. |
| **Default** | Toggle to make this the default data source for new panels.                                            |
| **URL**     | The URL of your AppDynamics controller. For example, `https://mycompany.saas.appdynamics.com`.         |

### Connection settings

The **Metrics** section of the configuration page connects Grafana to the AppDynamics Controller REST API. Grafana supports two authentication methods: **Basic authentication** (the **Basic auth** toggle) or **API client authentication** (the **Client Name**, **Client Domain**, and **Client Secret** fields). If you set a client secret, API client authentication takes precedence and Grafana doesn’t use the basic authentication username and password.

#### Basic authentication

Use basic authentication to connect with an AppDynamics username and password.

To create a dedicated role and user in AppDynamics:

1. Navigate to the AppDynamics Administration settings.
2. From the **Roles** tab, click the **+** button to create a new role, such as `grafana_readonly`.
3. From the **Account** tab, add the permission `View Business Flow`.
4. From the **Applications** tab, check the **View** box to allow Grafana to view application data.
5. From the **Databases** tab, check the **View** box to allow Grafana to view database data.
6. From the **Analytics** tab, check the **Can view data from all Applications** box to allow Grafana to view analytics data.
7. From the **Users** tab, create a new user, such as `grafana`, and assign it to the role you created.

In the Grafana data source configuration, enable **Basic auth** and enter the following:

- **User** - The AppDynamics username.
- **Password** - The AppDynamics password.

#### API client authentication

Use API client authentication to connect with OAuth credentials.

To create an API client in AppDynamics:

1. Sign in to the AppDynamics Controller UI at `https://<COMPANY>.saas.appdynamics.com/controller`.
2. Click the gear icon and select **Administration**.
3. Click the **API clients** tab.
4. Click **Create** to create a new API client.
5. Add a name and description, then generate a client secret.
6. Assign the role you created (for example, `grafana_readonly`) to the API client.

In the Grafana data source configuration, enter the following:

- **Client Name** - The name of the API client as shown in AppDynamics.
- **Client Domain** - Your company or domain name. For SaaS controllers, if your controller URL is `https://mycompany.saas.appdynamics.com`, use `mycompany`. For on-premises controllers, use the account name configured in your controller.
- **Client Secret** - The client secret generated when you created the API client.

#### Analytics authentication

Analytics configuration is optional. Configure it only if you run Analytics (ADQL) queries. The Analytics Events API uses a separate endpoint and API key from the Metrics (Controller) connection.

- **Analytics API URL** - The SaaS or on-premises endpoint for the [Analytics Event Service](https://docs.appdynamics.com/appd/24.x/latest/en/extend-splunk-appdynamics/splunk-appdynamics-apis/analytics-events-api). Select from the drop-down or enter a custom URL. The drop-down includes these presets:
  
  - `https://analytics.api.appdynamics.com`
  - `https://fra-ana-api.saas.appdynamics.com` (Frankfurt region)
  - `https://syd-ana-api.saas.appdynamics.com` (Sydney region)
  - If the Controller **URL** includes a port (typical for on-premises controllers), the editor also adds `https://<hostname>:9080/` as a selectable option.
- **Global Account Name** - The global account name, as shown on the **License** page in the AppDynamics Controller UI under **Settings** &gt; **License** &gt; **Account**.
- **Analytics API Key** - An [Analytics Events API key](https://help.splunk.com/en/appdynamics-saas/analytics/26.8.0/analytics/deploy-analytics-with-the-analytics-agent/analytics-and-data-security). Under **Custom Analytics Events**, the key must have both the **Manage Schema** permission, which is required for the connection test and query editor autocomplete (both call the `/events/schema` endpoint), and the **Query Custom Events** permission, which is required to run Analytics queries. You can’t change an API key’s permissions after you create it. You must set all three Analytics fields to validate the Analytics connection when you click **Save &amp; test**.

### Optional settings

The HTTP settings section includes the standard Grafana TLS options. The AppDynamics plugin applies the following to outgoing requests:

- **Skip TLS Verify** - Enable to skip TLS certificate verification. Keep this disabled in production environments.

### Secure Socks Proxy

> Note
> 
> The Secure Socks Proxy option is available in Grafana 10.0 and later when the `secureSocksDSProxyEnabled` feature toggle is enabled.

- **Enabled** - Enable to proxy the data source connection through the secure socks proxy to a different network. For more information, refer to [Configure a data source connection proxy](/docs/grafana/latest/setup-grafana/configure-grafana/proxy/).

After you have added your connection settings, click **Save &amp; test** to test the data source connection. The health check validates the Metrics API connection and, if all three Analytics fields are configured (Analytics API URL, Global Account Name, and Analytics API Key), also validates the Analytics API connection. A successful connection displays the message: **Data source is working, found N apps.**

## Configure the data source with provisioning

Configure the AppDynamics data source using the Grafana provisioning system by defining settings in YAML files. For details on the provisioning system and configuration options, refer to [Provisioning Grafana](/docs/grafana/latest/administration/provisioning/#datasources).

### Basic authentication example

YAML ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```yaml
apiVersion: 1
datasources:
  - name: AppDynamics
    type: dlopes7-appdynamics-datasource
    basicAuth: true
    basicAuthUser: <USERNAME>
    url: https://<COMPANY>.saas.appdynamics.com
    secureJsonData:
      basicAuthPassword: <PASSWORD>
```

### API client with Analytics example

> Note
> 
> If you set `clientSecret`, API client authentication takes precedence over basic authentication for the Controller (Metrics) connection. Analytics uses `analyticsAPIKey` separately and doesn’t replace Controller credentials.

YAML ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```yaml
apiVersion: 1
datasources:
  - name: AppDynamics
    type: dlopes7-appdynamics-datasource
    jsonData:
      clientName: <CLIENT_NAME>
      clientDomain: <CLIENT_DOMAIN>
      analyticsURL: https://analytics.api.appdynamics.com
      globalAccountName: <GLOBAL_ACCOUNT_NAME>
    secureJsonData:
      clientSecret: <CLIENT_SECRET>
      analyticsAPIKey: <ANALYTICS_API_KEY>
```

Replace the `<PLACEHOLDER>` values with your actual credentials and configuration.

To proxy the connection through the secure socks proxy, add `enableSecureSocksProxy: true` to `jsonData`. To skip TLS verification, add `tlsSkipVerify: true` to `jsonData`. Both fields are optional.

## Configure the data source with Terraform

You can configure the AppDynamics data source as code using the [Grafana Terraform provider](https://registry.terraform.io/providers/grafana/grafana/latest/docs). This approach enables version-controlled, reproducible data source configurations across environments.

The following examples demonstrate configurations for basic authentication and API client authentication.

### Basic authentication

terraform ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```terraform
terraform {
  required_providers {
    grafana = {
      source  = "grafana/grafana"
      version = "~> 3.0"
    }
  }
}

provider "grafana" {
  url  = var.grafana_url
  auth = var.grafana_auth
}

resource "grafana_data_source" "appdynamics_basic" {
  type       = "dlopes7-appdynamics-datasource"
  name       = "AppDynamics"
  url        = "https://${var.appdynamics_company}.saas.appdynamics.com"
  basic_auth_enabled  = true
  basic_auth_username = var.appdynamics_username

  secure_json_data_encoded = jsonencode({
    basicAuthPassword = var.appdynamics_password
  })
}
```

### API client with Analytics

terraform ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```terraform
resource "grafana_data_source" "appdynamics_api_client" {
  type = "dlopes7-appdynamics-datasource"
  name = "AppDynamics"
  url  = "https://${var.appdynamics_company}.saas.appdynamics.com"

  json_data_encoded = jsonencode({
    clientName        = var.appdynamics_client_name
    clientDomain      = var.appdynamics_client_domain
    analyticsURL      = "https://analytics.api.appdynamics.com"
    globalAccountName = var.appdynamics_global_account_name
  })

  secure_json_data_encoded = jsonencode({
    clientSecret    = var.appdynamics_client_secret
    analyticsAPIKey = var.appdynamics_analytics_api_key
  })
}
```

For more information about the Grafana Terraform provider, refer to the [Grafana provider documentation](https://registry.terraform.io/providers/grafana/grafana/latest/docs).
