> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# AppDynamics

> Connect AppDynamics (Cisco) APM to CloudThinker for application health monitoring, health-rule violation triage, and metric review

Connect your AppDynamics (Cisco) APM platform to enable CloudThinker agents to list applications, tiers, nodes, and business transactions, pull performance metrics, and review active health-rule violations and error events across your monitored environment.

AppDynamics authenticates with an **API client** (OAuth2 client credentials) scoped to a Controller account. The connection is read-only — agents query the Controller REST API but never mutate AppDynamics resources.

***

## Prerequisites

* An **AppDynamics Controller** (SaaS or on-premises) with the applications you want to monitor.
* An **API client** created under your account, with its **Client Name** and **Client Secret**.
* Your **Controller URL** and **account name**.

<Info>
  Grant the API client a read-only role. CloudThinker only reads application health, metrics, violations, and events — it never modifies AppDynamics configuration.
</Info>

***

## Setup

<Steps>
  <Step title="Open the AppDynamics Controller">
    Sign in to your AppDynamics Controller as an administrator. Your Controller URL follows the format `https://<account>.saas.appdynamics.com` for SaaS, or your on-premises host.
  </Step>

  <Step title="Create an API client">
    Go to **Settings → Administration → API Clients** and click **Create**:

    * **Client Name**: `cloudthinker`
    * **Description**: `Read-only access for CloudThinker agents`
    * **Roles**: assign a read-only role with access to the applications you want CloudThinker to monitor

    Copy the generated **Client Secret** immediately — it is shown only once.
  </Step>

  <Step title="Find your account name">
    Your account name appears under **Settings → License** or as the subdomain of your Controller URL (e.g. `myaccount` in `https://myaccount.saas.appdynamics.com`).
  </Step>

  <Step title="Add the connection in CloudThinker">
    Navigate to **Connections → AppDynamics** and enter:

    * **Controller URL**: your Controller base URL
    * **Account Name**: your AppDynamics account name
    * **Client Name**: the API client name (e.g. `cloudthinker@myaccount`)
    * **Client Secret**: the secret you copied

    Click **Connect**. CloudThinker verifies the credentials and shows a **Connected** status.
  </Step>
</Steps>

<Warning>
  Copy the Client Secret immediately after creating the API client. AppDynamics shows it only once — if it's lost, you'll need to regenerate the secret.
</Warning>

***

## Connection details

| Field                     | Description                          | Example                                  |
| ------------------------- | ------------------------------------ | ---------------------------------------- |
| **APPD\_CONTROLLER\_URL** | Your AppDynamics Controller base URL | `https://myaccount.saas.appdynamics.com` |
| **APPD\_ACCOUNT\_NAME**   | Your AppDynamics account name        | `myaccount`                              |
| **APPD\_CLIENT\_NAME**    | The API client name                  | `cloudthinker@myaccount`                 |
| **APPD\_CLIENT\_SECRET**  | The API client secret                | —                                        |

<Note>
  All four fields are required together — AppDynamics OAuth2 client-credentials authentication needs the Controller URL, account, client name, and secret to obtain an access token.
</Note>

***

## Required permissions

Assign the API client a **read-only role** with access to the applications CloudThinker should monitor. Read access covers applications, tiers, nodes, business transactions, metrics, health-rule violations, and events.

<Tip>
  Follow least privilege: a read-only role is enough for monitoring and triage. Keep configuration and administration permissions off the client CloudThinker uses.
</Tip>

***

## Agent capabilities

Once connected, agents have read access to your AppDynamics APM data.

| Capability             | Description                                                                                     |
| ---------------------- | ----------------------------------------------------------------------------------------------- |
| **Discovery**          | Summarize the environment — applications, tiers, nodes, and recent health signals               |
| **Application health** | List applications and flag health-rule violations or degraded business transactions             |
| **Violation triage**   | List and inspect active health-rule violations, ordered by severity                             |
| **Metric review**      | Pull response time, calls per minute, and error rate for applications and business transactions |
| **Event analysis**     | Retrieve recent error events and summarize top error types by affected tier                     |

### Verify the connection

```text theme={null}
@alex run AppDynamics discovery and summarize applications, tiers, and any active Health Rule violations
```

### Example prompts

```text theme={null}
@alex list all AppDynamics applications and flag any with a Health Rule violation or degraded Business Transaction error rate
@alex list all active Health Rule violations across AppDynamics applications ordered by severity and #recommend remediation steps
@alex pull the average response time and error rate for the top business transactions in the checkout application over the last hour
```

For large environments, scope requests to a named application and a short time window so the agent returns focused results.

***

## Troubleshooting

<Accordion title="401 or 403 Unauthorized">
  The client name or secret is wrong, or the API client lacks the required role. Verify the **Client Name** and **Client Secret**, confirm the client has a read-only role assigned, and reconnect.
</Accordion>

<Accordion title="Connection refused or timeout">
  The Controller URL is unreachable from CloudThinker. Verify the **Controller URL** is correct and accessible, and that on-premises Controllers allow inbound connections.
</Accordion>

<Accordion title="Account not found">
  The account name doesn't match the Controller. Check **Settings → License** or your Controller subdomain and update **APPD\_ACCOUNT\_NAME**.
</Accordion>

<Accordion title="No applications or metrics found">
  The API client's role has no access to the applications, or the account has no matching data. Confirm the role grants read access to the target applications, then retry with a known application name.
</Accordion>

<Accordion title="Large or noisy output">
  Unbounded application or metric queries return too much data. Scope requests to a named application and a short time window so results stay focused.
</Accordion>

***

## Security

* **Least privilege** — grant only the permissions the agents need for your use case; start read-only and widen later.
* **Read-only by default** — use read-only credentials unless you want agents to make changes through this connection.
* **Rotate credentials** — rotate keys and tokens on your normal schedule; CloudThinker picks up the new value when you update the connection.
* **Revoke on offboarding** — remove the credential at the provider when you delete a connection or a teammate leaves.

- **HTTPS Controller URL** — always use an HTTPS Controller URL to protect credentials in transit.
- **Dedicated API client** — create a client used only by CloudThinker so you can revoke it independently without affecting other integrations.

***

## Related

<CardGroup cols={2}>
  <Card title="Datadog Connection" icon="https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/datadog.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=e8382167f2a1eb1e00971b5f4d703d48" href="/guide/connections/datadog" width="24" height="24" data-path="images/icons/datadog.svg">
    APM, metrics, and monitoring
  </Card>

  <Card title="SigNoz Connection" icon="https://mintcdn.com/cloudthinker/CGWam0VVP8R5KVLk/images/icons/signoz.svg?fit=max&auto=format&n=CGWam0VVP8R5KVLk&q=85&s=d08abadb07adcc41c8812b59483344e3" href="/guide/connections/signoz" width="24" height="24" data-path="images/icons/signoz.svg">
    Traces, metrics, and logs in one place
  </Card>
</CardGroup>
