> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/continuous-delivery/use-continuous-delivery/verify-deployments/configure-cv/health-sources/app-dynamics.md).

# AppDynamics

Add AppDynamics as a health source for Continuous Verification and map application metrics to your Harness service

Configure AppDynamics as a health source so Continuous Verification can collect application metrics during an AI Verify (v1) step.

{% hint style="info" %}
**Application metrics only**

Harness supports AppDynamics metrics for applications. Harness does not support user experience metrics for browsers or mobile apps.
{% endhint %}

***

## What you will learn from this topic

* How to [add AppDynamics as a health source](#add-appdynamics-as-a-health-source) in Continuous Verification
* How to map applications, tiers, metric packs, and optional custom metrics
* How [out-of-the-box (OOTB) metric paths](#out-of-the-box-metric-paths) are structured and how to verify them in AppDynamics

***

## Before you begin

* **Continuous Verification setup**: Complete the shared Continuous Verification configuration for your pipeline. Go to [Configure Continuous Verification](/continuous-delivery/use-continuous-delivery/verify-deployments/configure-cv/verify-deployments.md) to finish those steps first.
* **Fixed service and environment**: This health source option is available only when you have configured the service and environment as fixed values.
* **AppDynamics connector**: Create or select an AppDynamics connector that can reach your AppDynamics controller.

***

## Add AppDynamics as a health source

A health source maps a Harness service to the service in a deployment environment monitored by an Application Performance Monitoring (APM) or logging tool.

In **Health Sources**, click **Add**. The **Add New Health Source** settings appear.

![Add New Health Source dialog](https://3694223630-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy1JhZ4oKIppwY7d5AhPj%2Fuploads%2Fgit-blob-9856c3fca7b06e965d1f15ef3e75f907b3884e92%2Fverify-deployments-with-splunk-38.png?alt=media)

Perform the following steps to add AppDynamics:

{% stepper %}
{% step %}

### Select the health source type

In **Select health source type**, select **AppDynamics**.
{% endstep %}

{% step %}

### Name the health source and select a connector

1. In **Health Source Name**, enter a name for the health source.
2. Under **Connect Health Source**, click **Select Connector**.
3. In **Connector** settings, choose an existing connector or click **New Connector**.

![AppDynamics connector selection](https://3694223630-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy1JhZ4oKIppwY7d5AhPj%2Fuploads%2Fgit-blob-fe61ddf7388d1a5b434d28a1cf971d5de4f919a2%2Fverify-deployments-with-app-dynamics-65.png?alt=media)

4. Click **Apply Selected**. The connector is added to the health source.

![Selected AppDynamics connector on the health source](https://3694223630-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy1JhZ4oKIppwY7d5AhPj%2Fuploads%2Fgit-blob-1a30169d5a0accdff92b17774839e3c0d63fa133%2Fverify-deployments-with-app-dynamics-66.png?alt=media)
{% endstep %}

{% step %}

### Select the feature and open Customize Health Source

1. In **Select Feature**, select the APM or logging tool component to use.
2. Click **Next**. The **Customize Health Source** settings appear.

The subsequent settings in **Customize Health Source** depend on the health source type you selected. You can customize the metrics to map the Harness service to the monitored environment.
{% endstep %}

{% step %}

### Configure Applications and Tiers

In **Applications & Tiers**, enter the following details:

1. In **Find an AppDynamics application**, enter the name of the application and select an option from the list.
2. In **Find an AppDynamics tier**, enter a tier name from which you want usage metrics, code exceptions, error conditions, or exit calls.
3. In **Metric Packs**, select the metrics you want Harness to monitor. **Errors** and **Performance** are selected by default.

![AppDynamics Applications and Tiers configuration with metric packs](https://3694223630-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy1JhZ4oKIppwY7d5AhPj%2Fuploads%2Fgit-blob-e1321e203292ebecbe8c33dd858420d0408f6838%2Fverify-deployments-with-app-dynamics-67.png?alt=media)
{% endstep %}

{% step %}

### Add optional custom metrics

1. In **Custom Metrics (optional)**, click **Add Metric** to add any other metric to be monitored.
2. In **Query Specifications and Mapping**, customize the query to get the desired output and map it to a Harness service.

![Query specifications and mapping for a custom AppDynamics metric](https://3694223630-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy1JhZ4oKIppwY7d5AhPj%2Fuploads%2Fgit-blob-6de147f0aad3f353f1514f830b4f83853aa09097%2Fverify-deployments-with-app-dynamics-68.png?alt=media)

3. In **Map Metric(s) to Harness Services**, in **Metric Name**, enter a name for the metric.
4. In **Group Name**, enter a group name for the metric.
5. In **AppDynamics Path**, either provide the complete metric path in **Specify a complete metric path**, or provide the base path of the AppDynamics metric in **Select the path from the AppD metric**.
6. In **Assign**, select the services for which you want to apply the metric. Available options are:
   * Continuous Verification
   * Health Score
   * Service Level Indicator (SLI)
7. In **Risk Category**, select a risk type from the list.
8. In **Deviation Compared to Baseline**, select one of the options based on the selected risk type.
   {% endstep %}

{% step %}

### Submit the health source

Click **Submit**. The health source is displayed in the AI Verify (v1) step.

![AppDynamics health source listed on the AI Verify (v1) step](https://3694223630-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy1JhZ4oKIppwY7d5AhPj%2Fuploads%2Fgit-blob-521db7b2dc1329792b1897d6abe33604b4ae0463%2Fverify-deployments-with-app-dynamics-69.png?alt=media)

You can add one or more health sources for each APM or logging provider.
{% endstep %}
{% endstepper %}

***

## Out-of-the-box metric paths

When you select a metric pack such as **Errors** or **Performance**, Harness automatically monitors a set of out-of-the-box (OOTB) metrics from AppDynamics. Each OOTB metric is defined with specific metric paths that determine how Harness queries your AppDynamics controller.

### Metric path structure

Each OOTB metric includes two path configurations:

* **path**: The primary metric path used in Harness DSL queries to fetch data during Continuous Verification
* **validationPath**: An alternative path used for validation purposes, typically representing an aggregated view at the tier level

For example, the `calls_per_minute` metric is defined as follows:

```json
{
  "identifier": "calls_per_minute",
  "type": "THROUGHPUT",
  "path": "Business Transaction Performance|Business Transactions|__tier_name__|__metric_filter__|Calls per Minute",
  "validationPath": "Overall Application Performance|__tier_name__|Calls per Minute",
  "included": true,
  "name": "Calls per Minute"
}
```

Placeholders such as `__tier_name__` and `__metric_filter__` are dynamically replaced with the actual values from your health source configuration during execution.

### Verify metrics in AppDynamics

To verify the metric paths and validate the data being collected, use one of the following approaches.

**Metric Browser**

1. Navigate to the **Metric Browser** in your AppDynamics controller.
2. Browse through the metric hierarchy following either the `path` or `validationPath` structure.
3. For the `calls_per_minute` example above, navigate to:
   * `Business Transaction Performance` → `Business Transactions` → `[Your Tier Name]` → `[Transaction Name]` → `Calls per Minute`

**Execution logs**

Alternatively, you can verify which metrics Harness is querying by examining the execution logs:

1. Run an AI Verify (v1) step that uses your AppDynamics health source.
2. Check the execution logs for external API calls.
3. Review the API call details for the exact metric paths being queried and the responses received from AppDynamics.

This approach helps you troubleshoot data discrepancies and confirm that Harness is collecting the correct metrics from your AppDynamics environment.

***

## Next steps

* [Configure Continuous Verification](/continuous-delivery/use-continuous-delivery/verify-deployments/configure-cv/verify-deployments.md): Finish shared AI Verify (v1) step settings for your pipeline.
* [Verify deployments with the Verify step](/continuous-delivery/use-continuous-delivery/verify-deployments/verify-deployments-with-the-verify-step.md): Run verification after you add health sources.

{% @harness-feedback/feedback %}
