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

> Kết nối AppDynamics (Cisco) APM với CloudThinker để giám sát tình trạng ứng dụng, phân loại vi phạm health rule và xem xét số liệu

Kết nối nền tảng APM AppDynamics (Cisco) của bạn để cho phép các agent CloudThinker liệt kê ứng dụng, tier, node và business transaction, lấy số liệu hiệu suất, cũng như xem xét các vi phạm health rule đang hoạt động và sự kiện lỗi trên toàn bộ môi trường được giám sát.

AppDynamics xác thực bằng **API client** (thông tin xác thực OAuth2 client) được giới hạn phạm vi theo tài khoản Controller. Kết nối chỉ đọc — agent truy vấn Controller REST API nhưng không bao giờ thay đổi tài nguyên AppDynamics.

***

## Điều kiện tiên quyết

* Một **AppDynamics Controller** (SaaS hoặc on-premises) chứa các ứng dụng bạn muốn giám sát.
* Một **API client** được tạo trong tài khoản của bạn, với **Client Name** và **Client Secret**.
* **Controller URL** và **tên tài khoản** của bạn.

<Info>
  Cấp cho API client vai trò chỉ đọc. CloudThinker chỉ đọc tình trạng ứng dụng, số liệu, vi phạm và sự kiện — không bao giờ thay đổi cấu hình AppDynamics.
</Info>

***

## Thiết lập

<Steps>
  <Step title="Mở AppDynamics Controller">
    Đăng nhập vào AppDynamics Controller với quyền admin. Controller URL của bạn theo định dạng `https://<account>.saas.appdynamics.com` với SaaS, hoặc host on-premises của bạn.
  </Step>

  <Step title="Tạo API client">
    Vào **Settings → Administration → API Clients** và nhấn **Create**:

    * **Client Name**: `cloudthinker`
    * **Description**: `Read-only access for CloudThinker agents`
    * **Roles**: gán vai trò chỉ đọc với quyền truy cập vào các ứng dụng bạn muốn CloudThinker giám sát

    Sao chép **Client Secret** được tạo ngay lập tức — nó chỉ hiển thị một lần.
  </Step>

  <Step title="Tìm tên tài khoản của bạn">
    Tên tài khoản xuất hiện trong **Settings → License** hoặc là tên miền phụ của Controller URL (ví dụ `myaccount` trong `https://myaccount.saas.appdynamics.com`).
  </Step>

  <Step title="Thêm kết nối trong CloudThinker">
    Điều hướng đến **Connections → AppDynamics** và nhập:

    * **Controller URL**: URL cơ sở Controller của bạn
    * **Account Name**: tên tài khoản AppDynamics của bạn
    * **Client Name**: tên API client (ví dụ `cloudthinker@myaccount`)
    * **Client Secret**: secret bạn vừa sao chép

    Nhấn **Connect**. CloudThinker xác minh thông tin xác thực và hiển thị trạng thái **Connected**.
  </Step>
</Steps>

<Warning>
  Sao chép Client Secret ngay sau khi tạo API client. AppDynamics chỉ hiển thị một lần — nếu mất, bạn cần tạo lại secret.
</Warning>

***

## Chi tiết kết nối

| Trường                    | Mô tả                                    | Ví dụ                                    |
| ------------------------- | ---------------------------------------- | ---------------------------------------- |
| **APPD\_CONTROLLER\_URL** | URL cơ sở AppDynamics Controller của bạn | `https://myaccount.saas.appdynamics.com` |
| **APPD\_ACCOUNT\_NAME**   | Tên tài khoản AppDynamics của bạn        | `myaccount`                              |
| **APPD\_CLIENT\_NAME**    | Tên API client                           | `cloudthinker@myaccount`                 |
| **APPD\_CLIENT\_SECRET**  | Secret của API client                    | —                                        |

<Note>
  Cả bốn trường đều bắt buộc — xác thực OAuth2 client credentials của AppDynamics cần Controller URL, tài khoản, tên client và secret để lấy access token.
</Note>

***

## Quyền yêu cầu

Gán cho API client một **vai trò chỉ đọc** với quyền truy cập vào các ứng dụng mà CloudThinker cần giám sát. Quyền đọc bao gồm ứng dụng, tier, node, business transaction, số liệu, vi phạm health rule và sự kiện.

<Tip>
  Tuân theo nguyên tắc ít quyền nhất: vai trò chỉ đọc là đủ để giám sát và phân loại. Giữ các quyền cấu hình và quản trị khỏi client mà CloudThinker sử dụng.
</Tip>

***

## Khả năng của agent

Sau khi kết nối, các agent có quyền đọc dữ liệu APM AppDynamics của bạn.

| Khả năng                | Mô tả                                                                                        |
| ----------------------- | -------------------------------------------------------------------------------------------- |
| **Khám phá**            | Tóm tắt môi trường — ứng dụng, tier, node và các tín hiệu tình trạng gần đây                 |
| **Tình trạng ứng dụng** | Liệt kê ứng dụng và gắn cờ các vi phạm health rule hoặc business transaction bị suy giảm     |
| **Phân loại vi phạm**   | Liệt kê và kiểm tra các vi phạm health rule đang hoạt động, sắp xếp theo mức độ nghiêm trọng |
| **Xem xét số liệu**     | Lấy thời gian phản hồi, lần gọi mỗi phút và tỷ lệ lỗi cho ứng dụng và business transaction   |
| **Phân tích sự kiện**   | Lấy các sự kiện lỗi gần đây và tóm tắt các loại lỗi hàng đầu theo tier bị ảnh hưởng          |

### Xác minh kết nối

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

### Ví dụ lệnh

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

Với môi trường lớn, hãy giới hạn yêu cầu theo tên ứng dụng cụ thể và cửa sổ thời gian ngắn để agent trả về kết quả tập trung.

***

## Khắc phục sự cố

<Accordion title="401 hoặc 403 Unauthorized">
  Tên client hoặc secret không đúng, hoặc API client thiếu vai trò yêu cầu. Xác minh **Client Name** và **Client Secret**, xác nhận client có vai trò chỉ đọc được gán, rồi kết nối lại.
</Accordion>

<Accordion title="Kết nối bị từ chối hoặc hết thời gian chờ">
  Controller URL không thể truy cập từ CloudThinker. Xác minh **Controller URL** đúng và có thể truy cập, đồng thời xác nhận các Controller on-premises cho phép kết nối đến.
</Accordion>

<Accordion title="Không tìm thấy tài khoản">
  Tên tài khoản không khớp với Controller. Kiểm tra **Settings → License** hoặc tên miền phụ Controller của bạn và cập nhật **APPD\_ACCOUNT\_NAME**.
</Accordion>

<Accordion title="Không tìm thấy ứng dụng hoặc số liệu">
  Vai trò của API client không có quyền truy cập vào các ứng dụng, hoặc tài khoản không có dữ liệu phù hợp. Xác nhận vai trò cấp quyền đọc cho các ứng dụng mục tiêu, rồi thử lại với tên ứng dụng đã biết.
</Accordion>

<Accordion title="Kết quả quá lớn hoặc quá nhiều dữ liệu">
  Các truy vấn ứng dụng hoặc số liệu không giới hạn trả về quá nhiều dữ liệu. Giới hạn yêu cầu theo tên ứng dụng cụ thể và cửa sổ thời gian ngắn để kết quả luôn tập trung.
</Accordion>

***

## Bảo mật

* **Quyền tối thiểu** — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
* **Chỉ đọc theo mặc định** — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
* **Xoay vòng thông tin xác thực** — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
* **Thu hồi khi bàn giao** — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.

- **Controller URL dùng HTTPS** — luôn sử dụng Controller URL dạng HTTPS để bảo vệ thông tin xác thực trong quá trình truyền.
- **API client riêng biệt** — tạo một client chỉ dành cho CloudThinker để có thể thu hồi độc lập mà không ảnh hưởng đến các tích hợp khác.

***

## Liên quan

<CardGroup cols={2}>
  <Card title="Kết nối 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="/vi/guide/connections/datadog" width="24" height="24" data-path="images/icons/datadog.svg">
    APM, số liệu và giám sát
  </Card>

  <Card title="Kết nối SigNoz" icon="https://mintcdn.com/cloudthinker/CGWam0VVP8R5KVLk/images/icons/signoz.svg?fit=max&auto=format&n=CGWam0VVP8R5KVLk&q=85&s=d08abadb07adcc41c8812b59483344e3" href="/vi/guide/connections/signoz" width="24" height="24" data-path="images/icons/signoz.svg">
    Trace, số liệu và log trong một nơi
  </Card>
</CardGroup>
