> ## 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

> 애플리케이션 상태 모니터링, 헬스 룰 위반 분류, 메트릭 검토를 위해 AppDynamics(Cisco)를 CloudThinker에 연결합니다

AppDynamics(Cisco) APM 플랫폼을 연결하면 CloudThinker 에이전트가 애플리케이션, 티어, 노드, 비즈니스 트랜잭션 목록 조회, 성능 메트릭 수집, 모니터링 환경 전반의 활성 헬스 룰 위반 및 오류 이벤트 검토를 수행할 수 있습니다.

AppDynamics는 Controller 계정에 스코프가 지정된 **API 클라이언트**(OAuth2 클라이언트 자격 증명)로 인증합니다. 이 연결은 읽기 전용으로, 에이전트는 Controller REST API를 쿼리하지만 AppDynamics 리소스를 수정하지 않습니다.

***

## 사전 요구 사항

* 모니터링할 애플리케이션이 있는 **AppDynamics Controller**(SaaS 또는 온프레미스).
* 계정에서 생성된 **API 클라이언트** (Client Name과 Client Secret 포함).
* **Controller URL** 및 **계정 이름**.

<Info>
  API 클라이언트에 읽기 전용 역할을 부여하세요. CloudThinker는 애플리케이션 상태, 메트릭, 위반, 이벤트만 읽으며 AppDynamics 구성을 수정하지 않습니다.
</Info>

***

## 설정

<Steps>
  <Step title="AppDynamics Controller 열기">
    관리자로 AppDynamics Controller에 로그인합니다. Controller URL은 SaaS의 경우 `https://<account>.saas.appdynamics.com` 형식이며, 온프레미스는 해당 호스트 주소입니다.
  </Step>

  <Step title="API 클라이언트 생성">
    **Settings → Administration → API Clients**로 이동하여 **Create**를 클릭합니다.

    * **Client Name**: `cloudthinker`
    * **Description**: `Read-only access for CloudThinker agents`
    * **Roles**: CloudThinker가 모니터링할 애플리케이션에 접근할 수 있는 읽기 전용 역할 할당

    생성된 **Client Secret**을 즉시 복사하세요 — 한 번만 표시됩니다.
  </Step>

  <Step title="계정 이름 확인">
    계정 이름은 **Settings → License**에서 확인하거나 Controller URL의 서브도메인에서 찾을 수 있습니다 (예: `https://myaccount.saas.appdynamics.com`의 `myaccount`).
  </Step>

  <Step title="CloudThinker에 연결 추가">
    **Connections → AppDynamics**로 이동하여 다음을 입력합니다.

    * **Controller URL**: Controller 기본 URL
    * **Account Name**: AppDynamics 계정 이름
    * **Client Name**: API 클라이언트 이름 (예: `cloudthinker@myaccount`)
    * **Client Secret**: 복사한 시크릿

    **Connect**를 클릭합니다. CloudThinker가 자격 증명을 검증하고 **Connected** 상태를 표시합니다.
  </Step>
</Steps>

<Warning>
  API 클라이언트 생성 후 Client Secret을 즉시 복사하세요. AppDynamics는 한 번만 표시하며, 분실 시 시크릿을 재생성해야 합니다.
</Warning>

***

## 연결 세부 정보

| 필드                        | 설명                            | 예시                                       |
| ------------------------- | ----------------------------- | ---------------------------------------- |
| **APPD\_CONTROLLER\_URL** | AppDynamics Controller 기본 URL | `https://myaccount.saas.appdynamics.com` |
| **APPD\_ACCOUNT\_NAME**   | AppDynamics 계정 이름             | `myaccount`                              |
| **APPD\_CLIENT\_NAME**    | API 클라이언트 이름                  | `cloudthinker@myaccount`                 |
| **APPD\_CLIENT\_SECRET**  | API 클라이언트 시크릿                 | —                                        |

<Note>
  네 필드 모두 함께 필요합니다. AppDynamics OAuth2 클라이언트 자격 증명 인증은 액세스 토큰을 얻기 위해 Controller URL, 계정, 클라이언트 이름, 시크릿이 모두 필요합니다.
</Note>

***

## 필수 권한

API 클라이언트에 CloudThinker가 모니터링할 애플리케이션에 접근 권한이 있는 **읽기 전용 역할**을 할당합니다. 읽기 접근은 애플리케이션, 티어, 노드, 비즈니스 트랜잭션, 메트릭, 헬스 룰 위반, 이벤트를 포함합니다.

<Tip>
  최소 권한 원칙을 따르세요. 모니터링 및 분류에는 읽기 전용 역할로 충분합니다. CloudThinker가 사용하는 클라이언트에는 구성 및 관리 권한을 부여하지 마세요.
</Tip>

***

## 에이전트 기능

연결 후 에이전트는 AppDynamics APM 데이터에 읽기 접근 권한을 갖습니다.

| 기능            | 설명                                         |
| ------------- | ------------------------------------------ |
| **탐색**        | 환경 요약 — 애플리케이션, 티어, 노드, 최근 상태 신호           |
| **애플리케이션 상태** | 애플리케이션 목록 조회 및 헬스 룰 위반 또는 저하된 비즈니스 트랜잭션 표시 |
| **위반 분류**     | 심각도 순으로 정렬된 활성 헬스 룰 위반 목록 조회 및 검사          |
| **메트릭 검토**    | 애플리케이션 및 비즈니스 트랜잭션의 응답 시간, 분당 호출 수, 오류율 수집 |
| **이벤트 분석**    | 최근 오류 이벤트 조회 및 영향받은 티어별 상위 오류 유형 요약        |

### 연결 확인

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

### 예시 프롬프트

```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
```

대규모 환경에서는 특정 애플리케이션 이름과 짧은 시간 범위로 요청 범위를 좁혀 에이전트가 집중적인 결과를 반환하도록 하세요.

***

## 문제 해결

<Accordion title="401 또는 403 Unauthorized">
  클라이언트 이름 또는 시크릿이 잘못되었거나, API 클라이언트에 필요한 역할이 없습니다. **Client Name**과 **Client Secret**을 확인하고, 클라이언트에 읽기 전용 역할이 할당되어 있는지 확인한 후 다시 연결하세요.
</Accordion>

<Accordion title="연결 거부 또는 타임아웃">
  CloudThinker에서 Controller URL에 접근할 수 없습니다. **Controller URL**이 올바르고 접근 가능한지 확인하고, 온프레미스 Controller가 인바운드 연결을 허용하는지 확인하세요.
</Accordion>

<Accordion title="계정을 찾을 수 없음">
  계정 이름이 Controller와 일치하지 않습니다. **Settings → License** 또는 Controller 서브도메인을 확인하고 **APPD\_ACCOUNT\_NAME**을 업데이트하세요.
</Accordion>

<Accordion title="애플리케이션 또는 메트릭을 찾을 수 없음">
  API 클라이언트 역할에 애플리케이션에 대한 접근 권한이 없거나, 계정에 일치하는 데이터가 없습니다. 역할이 대상 애플리케이션에 읽기 접근 권한을 부여하는지 확인한 후 알려진 애플리케이션 이름으로 다시 시도하세요.
</Accordion>

<Accordion title="크거나 노이즈가 많은 출력">
  범위가 없는 애플리케이션 또는 메트릭 쿼리는 너무 많은 데이터를 반환합니다. 특정 애플리케이션 이름과 짧은 시간 범위로 요청 범위를 좁혀 결과가 집중적으로 유지되도록 하세요.
</Accordion>

***

## 보안

* **최소 권한** — 에이전트가 사용 사례에 필요한 권한만 부여하세요. 읽기 전용으로 시작한 후 필요에 따라 확장하세요.
* **기본 읽기 전용** — 에이전트가 이 연결을 통해 변경 작업을 수행하게 할 것이 아니라면 읽기 전용 자격증명을 사용하세요.
* **자격증명 교체** — 정기 일정에 따라 키와 토큰을 교체하세요. 연결을 업데이트하면 CloudThinker가 새 값을 자동으로 반영합니다.
* **오프보딩 시 취소** — 연결을 삭제하거나 팀원이 퇴사할 때 프로바이더에서 자격증명을 제거하세요.

- **HTTPS Controller URL** — 전송 중 자격 증명을 보호하기 위해 항상 HTTPS Controller URL을 사용하세요.
- **전용 API 클라이언트** — CloudThinker 전용 클라이언트를 생성하여 다른 통합에 영향을 주지 않고 독립적으로 취소할 수 있도록 하세요.

***

## 관련 항목

<CardGroup cols={2}>
  <Card title="Datadog 연결" 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="/ko/guide/connections/datadog" width="24" height="24" data-path="images/icons/datadog.svg">
    APM, 메트릭, 모니터링
  </Card>

  <Card title="SigNoz 연결" icon="https://mintcdn.com/cloudthinker/CGWam0VVP8R5KVLk/images/icons/signoz.svg?fit=max&auto=format&n=CGWam0VVP8R5KVLk&q=85&s=d08abadb07adcc41c8812b59483344e3" href="/ko/guide/connections/signoz" width="24" height="24" data-path="images/icons/signoz.svg">
    한 곳에서 트레이스, 메트릭, 로그
  </Card>
</CardGroup>
