

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 성능 개선 도우미로 모니터링
<a name="performance-insights"></a>

성능 개선 도우미는 기존 Amazon DocumentDB 모니터링 특성을 확장한 것으로서 데이터베이스 성능을 표시하여 성능 문제를 분석하는 데 효과적입니다. 성능 개선 도우미 대시보드를 사용하면 데이터베이스 로드를 시각화하고 대기, 쿼리문, 호스트 또는 애플리케이션별로 로드를 필터링할 수 있습니다.

**참고**  
성능 개선 도우미는 Amazon DocumentDB 3.6, 4.0, 5.0 및 8.0 인스턴스 기반 클러스터에서만 사용할 수 있습니다.

**어떻게 유용할까요?**
+ 데이터베이스 성능 가시화 — 언제 어디에서 데이터베이스의 로드가 있는지 파악하기 위해 로드를 시각화합니다
+ 데이터베이스 로드의 원인 파악 — 어떤 쿼리, 호스트, 애플리케이션이 인스턴스 로드에 영향을 미치는지 확인합니다
+ 데이터베이스에 로드가 있을 때 판단 — 성능 개선 도우미 대시보드를 확대하여 특정 이벤트에 초점을 맞추거나 축소하여 더 큰 시간에 걸쳐 추세를 확인할 수 있습니다
+ 데이터베이스 로드에 대한 알림 — CloudWatch에서 새로운 데이터베이스 로드 메트릭에 자동으로 액세스하여 다른 Amazon DocumentDB 메트릭과 함께 DB 로드 메트릭을 모니터링하고 해당 메트릭에 대한 알림을 설정할 수 있습니다

**Amazon DocumentDB 성능 개선 도우미의 한계는 무엇입니까?**
+  AWS GovCloud(미국 동부) 및 AWS GovCloud(미국 서부) 리전의 성능 개선 도우미를 사용할 수 없음
+ Amazon DocumentDB용 성능 개선 도우미는 최대 7일 간의 성능 데이터를 유지합니다
+ 1,024바이트보다 긴 쿼리는 성능 개선 도우미에 집계되지 않습니다

**Topics**
+ [성능 개선 도우미 개념](performance-insights-concepts.md)
+ [성능 개선 도우미 활성화 및 비활성화](performance-insights-enabling.md)
+ [성능 개선 도우미에 대한 액세스 정책 구성](performance-insights-policies.md)
+ [성능 개선 도우미 대시보드를 사용한 지표 분석](performance-insights-analyzing.md)
+ [성능 개선 도우미 API를 사용하여 지표 검색](performance-insights-metrics.md)
+ [성능 개선 도우미를 위한 Amazon CloudWatch 지표](performance-insights-cloudwatch.md)
+ [카운터 지표에 대한 성능 개선 도우미](performance-insights-counter-metrics.md)

# 성능 개선 도우미 개념
<a name="performance-insights-concepts"></a>

**Topics**
+ [평균 활성 세션](#performance-insights-concepts-sessions)
+ [측정 기준](#performance-insights-concepts-dimensions)
+ [최대 vCPU](#performance-insights-concepts-maxvcpu)

## 평균 활성 세션
<a name="performance-insights-concepts-sessions"></a>

데이터베이스 로드(DB 로드)는 데이터베이스의 활동 수준을 측정합니다. 성능 개선 도우미의 핵심 지표는 `DB Load`이며, 1초 간격으로 수집됩니다. `DBLoad` 메트릭의 단위는 Amazon DocumentDB 인스턴스에 대한 *AAS(평균 활성 세션 수)*입니다.

*활성* 세션은 Amazon DocumentDB 인스턴스에 작업을 제출하고 응답을 기다리는 연결입니다. 예를 들어 Amazon DocumentDB 인스턴스에 쿼리를 제출하면 인스턴스가 쿼리를 처리하는 동안 데이터베이스 세션이 활성화됩니다.

평균 활성 세션을 구하기 위해 성능 개선 도우미는 쿼리를 동시에 실행하는 세션 수를 샘플링합니다. AAS는 총 세션 수를 총 샘플 수로 나눈 값입니다. 다음 표는 실행 중인 쿼리의 연속된 5개 샘플을 보여 줍니다.


| 샘플 | 쿼리를 실행 중인 세션 수 | AAS | 계산 | 
| --- | --- | --- | --- | 
|  1  |  2  |  2  |  2개 세션/1개 샘플  | 
|  2  |  0  |  1  |  2개 세션/2개 샘플  | 
|  3  |  4  |  2  |  6개 세션/3개 샘플  | 
|  4  |  0  |  1.5  |  6개 세션/4개 샘플  | 
|  5  |  4  |  2  |  10개 세션/5개 샘플  | 

앞의 예제에서 1-5의 시간 간격에 대한 DB 로드는 2 AAS입니다. DB 로드의 증가는 평균적으로 데이터베이스에서 더 많은 세션이 실행되고 있음을 의미합니다.

## 측정 기준
<a name="performance-insights-concepts-dimensions"></a>

`DB Load` 지표는 ‘차원’이라는 하위 구성 요소로 구분할 수 있기 때문에 다른 시계열 지표와 다릅니다. 차원을 `DB Load` 지표의 다양한 특성에 대한 범주로 생각할 수 있습니다. 성능 문제를 진단할 때 가장 유용한 차원은 **대기 상태** 및 **상위 쿼리**입니다.

**대기 상태**  
*대기 상태*는 쿼리 문이 계속 실행되려면 특정 이벤트가 발생할 때까지 쿼리 문이 기다리도록 합니다. 예를 들어 잠긴 리소스의 잠금이 해제될 때까지 쿼리 문이 대기할 수 있습니다. `DB Load`와 대기 상태와 결합하여 전체 세션 상태를 이해할 수 있습니다. Amazon DocumentDB의 다양한 대기 상태는 다음과 같습니다:


| Amazon DocumentDB 대기 상태 | 대기 상태 설명 | 
| --- | --- | 
|  래치  |  래치 대기 상태는 세션이 버퍼 풀의 페이징을 기다리고 있을 때 발생합니다. 버퍼 풀에서 자주 호출되는 것은 시스템에서 처리 중인 대규모 쿼리, 수집 검색이 빈번할 때 또는 버퍼 풀이 너무 작아서 작업 세트를 처리할 수 없을 때 더 자주 발생할 수 있습니다.  | 
| CPU |  CPU 대기 상태는 세션이 CPU에서 대기할 때 발생합니다.  | 
|  CollectionLock  |  CollectionLock 대기 상태는 세션이 컬렉션에 대한 잠금을 획득하기 위해 대기할 때 발생합니다. 이러한 이벤트는 컬렉션에 DDL 작업이 있을 때 발생합니다.  | 
| DocumentLock |  DocumentLock 대기 상태는 세션이 문서에 대한 잠금 획득을 대기 중일 때 발생합니다. 동일한 문서에 대한 동시 쓰기 횟수가 많으면 해당 문서의 DocumentLock 대기 상태가 늘어나는데 기여하게 됩니다.  | 
|  SystemLock  |  SystemLock 대기 상태는 세션이 시스템에서 대기할 때 발생합니다. 이 문제는 시스템에서 자주 실행되는 쿼리, 오래 실행되는 트랜잭션 또는 높은 동시성이 있을 때 발생할 수 있습니다.  | 
|  IO  |  IO 대기 상태는 IO에서 세션이 완료될 때 발생합니다.  | 
|  BufferLock  |  BufferLock 대기 상태는 세션이 버퍼의 공유 페이지에서 잠금을 획득하기 위해 대기할 때 발생합니다. 다른 프로세스가 요청된 페이지에서 열린 커서를 유지하고 있는 경우 BufferLock 대기 상태가 길어질 수 있습니다.  | 
|  LowMemThrottle  |  Amazon DocumentDB 인스턴스의 과도한 메모리 부족으로 인해 세션이 대기 중일 때 LowMemThrottle 대기 상태가 발생합니다. 이 상태가 오래 지속되면 인스턴스를 확장하여 추가 메모리를 제공하는 것을 고려합니다. 자세한 내용은 [리소스 거버너](https://docs.aws.amazon.com/documentdb/latest/developerguide/how-it-works.html)를 참조하세요.  | 
|  BackgroundActivity  |  BackgroundActivity 대기 상태는 세션이 내부 시스템 프로세스에서 대기할 때 발생합니다.  | 
|  기타  |  기타 대기 상태는 내부 대기 상태입니다. 이 상태가 오래 지속되면 이 쿼리를 종료하는 것을 고려하십시오. 자세한 내용은 [긴 실행 중이거나 차단된 쿼리를 어떻게 찾고 종료하나요?](https://docs.aws.amazon.com/documentdb/latest/developerguide/user_diagnostics.html#user_diagnostics-query_terminating.html)를 참조하십시오.  | 

**상위 쿼리**  
대기 상태는 병목 현상을 보여주는 반면 상위 쿼리는 DB 로드에 가장 큰 기여를 하는 쿼리를 보여줍니다. 예를 들어 현재 데이터베이스에서 여러 쿼리가 실행 중이더라도 단일 쿼리가 DB 로드의 99%를 소비할 수 있습니다. 이 경우 로드가 높으면 쿼리에 문제가 있음을 나타낼 수 있습니다.

## 최대 vCPU
<a name="performance-insights-concepts-maxvcpu"></a>

대시보드에서 **데이터베이스 로드** 차트는 세션 정보를 수집, 집계 및 표시합니다. 활성 세션이 최대 CPU를 초과하는지 확인하려면 **최대 vCPU** 선과의 관계를 확인합니다. **최대 vCPU** 값은 Amazon DocumentDB 인스턴스의 vCPU(가상 CPU) 코어 수에 따라 결정됩니다.

DB 로드가 **최대 vCPU** 선을 상회하는 경우가 잦아지고 CPU가 기본 대기 상태라면 CPU에서 과부하가 발생한 것입니다. 이 경우 인스턴스에 대한 연결을 조절하거나 CPU 로드가 큰 쿼리를 조정하거나 더 큰 인스턴스 클래스를 고려할 수 있습니다. 대기 상태의 인스턴스가 높고 일관적이라는 것은 해결해야 할 병목 현상이나 리소스 경합 문제가 있을 수 있음을 나타냅니다. DB 로드가 **최대 vCPU** 선을 넘지 않는다 하더라도 이러한 문제가 나타날 수 있습니다.

# 성능 개선 도우미 활성화 및 비활성화
<a name="performance-insights-enabling"></a>

성능 개선 도우미를 사용하려면 DB 인스턴스에서 이 기능을 활성화합니다. 필요한 경우 나중에 이를 비활성화할 수 있습니다. 성능 개선 도우미를 활성화하거나 비활성화해도 가동 중지, 재부팅 또는 장애 조치가 발생하지 않습니다.

성능 개선 도우미 에이전트는 DB 호스트에서 제한된 CPU 및 메모리를 사용합니다. DB 로드가 높을 경우 에이전트는 데이터 수집 빈도를 줄여 성능에 미치는 영향을 제한합니다.

## 클러스터 생성 시 성능 개선 도우미 활성화
<a name="performance-insights-enabling-create-instance"></a>

콘솔에서 새 DB 인스턴스를 생성하거나 수정할 때 성능 개선 도우미를 활성화하거나 비활성화할 수 있습니다.

### 사용 AWS Management Console
<a name="create-instance-console"></a>

콘솔에서 Amazon DocumentDB 클러스터를 작성할 때 성능 개선 도우미를 활성화할 수 있습니다. 새 Amazon DocumentDB 클러스터를 작성할 때 **성능 개선 도우미** 섹션에서 **성능 개선 도우미 활성화**를 선택하여 성능 개선 도우미를 활성화합니다.

**콘솔 지침**

1. 클러스터를 만드는 방법에 대한 지침은 [Amazon DocumentDB 클러스터 생성](https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-create.html)을 참조하세요.

1. 성능 개선 도우미 섹션에서 **성능 개선 도우미 활성화**를 선택합니다.  
![\[성능 개선 도우미 활성화를 선택한 성능 개선 도우미 섹션입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/select-performance-insights.png)
**참고**  
성능 개선 도우미 데이터 보존 기간은 7일입니다.

   ** AWS KMS 키** - AWS KMS 키를 지정합니다. 성능 개선 도우미는 AWS KMS 키를 사용하여 잠재적으로 민감한 모든 데이터를 암호화합니다. 데이터는 암호화된 상태로 전송 및 저장됩니다. 자세한 내용은 성능 개선 도우미에 대한 AWS AWS KMS 정책 구성을 참조하세요.

## 인스턴스 수정 시 활성화 및 비활성화
<a name="performance-insights-enabling-modify-instance"></a>

콘솔 또는 AWS CLI을 사용하여 성능 개선 도우미를 활성화하도록 DB 인스턴스를 수정할 수 있습니다.

------
#### [ Using the AWS Management Console ]

**콘솔 지침**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) Amazon DocumentDB 콘솔을 엽니다.

1. **클러스터**를 선택하십시오.

1. DB 인스턴스를 선택하고 **수정**을 선택합니다.

1. 성능 개선 도우미 섹션에서 **성능 개선 도우미 활성화** 또는 **성능 개선 도우미 비활성화**를 선택합니다.
**참고**  
**성능 개선 도우미 활성화를** 선택하면 AWS AWS KMS 키를 지정할 수 있습니다. 성능 개선 도우미는 AWS KMS 키를 사용하여 잠재적으로 민감한 모든 데이터를 암호화합니다. 데이터는 암호화된 상태로 전송 및 저장됩니다. 자세한 내용은 [정지 상태의 Amazon DocumentDB Data 암호화](https://docs.aws.amazon.com/documentdb/latest/developerguide/encryption-at-rest.html)를 참조하십시오.

1. **Continue(계속)**를 선택합니다.

1. **수정 스케줄링**에 대해 **즉시 적용**을 선택합니다. **다음 예약된 유지 관리 기간 동안 적용**을 선택하면 인스턴스는 이 설정을 무시하고 즉시 성능 개선 도우미를 활성화합니다.

1. **Modify Instance(인스턴스 수정)**를 선택합니다.

------
#### [ Using the AWS CLI ]

`create-db-instance` 또는 `modify-db-instance` AWS AWS CLI 명령을 사용할 때를 지정하여 성능 개선 도우미를 활성화하거나 `--enable-performance-insights`를 지정하여 비활성화할 수 있습니다`--no-enable-performance-insights`.

다음 절차에서는 AWS AWS CLI를 사용하여 DB 인스턴스의 성능 개선 도우미를 활성화 또는 비활성화하는 방법을 설명합니다.



**AWS AWS CLI 지침**

`modify-db-instance` AWS AWS CLI 명령을 호출하고 다음 값을 제공합니다.
+ `--db-instance-identifer` — DB 인스턴스 이름.
+ 활성화하려면 `--enable-performance-insights` 또는 비활성화하려면 `--no-enable-performance-insights`

**Example**  
다음 예제에서는 `sample-db-instance`에 대한 성능 개선 도우미를 활성화합니다:  

```
aws docdb modify-db-instance \
    --db-instance-identifier sample-db-instance \
    --enable-performance-insights
```

```
aws docdb modify-db-instance ^
    --db-instance-identifier sample-db-instance ^
    --enable-performance-insights
```

------

# 성능 개선 도우미에 대한 액세스 정책 구성
<a name="performance-insights-policies"></a>

성능 개선 도우미에 액세스하려면 AWS Identity and Access Management (IAM)의 적절한 권한이 있어야 합니다. 액세스 권한 부여 옵션은 다음과 같습니다:
+ 권한 세트 또는 역할에 `AmazonRDSPerformanceInsightsReadOnly` 관리형 정책을 연결합니다.
+ 사용자 지정 IAM 정책을 생성하고 권한 세트 또는 역할에 연결합니다.

또한 성능 개선 도우미를 활성화할 때 고객 관리형 키를 지정한 경우 계정의 사용자에게 KMS 키에 대한 `kms:Decrypt` 및 `kms:GenerateDataKey` 권한이 있는지 확인합니다.

**참고**  
 AWS KMS 키 및 보안 그룹 관리를 통한 encryption-at-rest의 경우 Amazon DocumentDB는 [Amazon RDS](https://aws.amazon.com/rds)와 공유되는 운영 기술을 활용합니다.

## AmazonRDSPerformanceInsightsReadOnly 정책을 IAM 보안 주체에 연결
<a name="USER_PerfInsights.access-control.IAM-principal"></a>

`AmazonRDSPerformanceInsightsReadOnly`는 Amazon DocumentDB 성능 개선 도우미 API의 모든 읽기 전용 작업에 대한 액세스 권한을 부여하는 AWS관리형 정책입니다. 현재 이 API의 모든 작업은 읽기 전용입니다. `AmazonRDSPerformanceInsightsReadOnly`를 권한 세트 또는 역할에 연결하면 수신자는 성능 개선 도우미를 다른 콘솔 기능과 함께 사용할 수 있습니다.

## 성능 개선 도우미를 위한 사용자 지정 IAM 정책 만들기
<a name="USER_PerfInsights.access-control.custom-policy"></a>

`AmazonRDSPerformanceInsightsReadOnly` 정책이 없는 사용자의 경우, 사용자 관리형 IAM 정책을 생성 또는 수정하여 성능 개선 도우미에 대한 액세스 권한을 부여할 수 있습니다. 정책을 권한 세트 또는 역할에 연결할 때 수신자는 성능 개선 도우미을 사용할 수 있습니다.

**사용자 지정 정책을 생성하는 방법**

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **Policies**를 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 생성** 페이지에서 JSON 탭을 선택합니다.

1. 다음 텍스트를 복사하여 붙여넣습니다. *us-east-1*을 AWS 리전 이름으로 바꾸고 *111122223333*을 고객 계정 번호로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "rds:DescribeDBInstances",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "rds:DescribeDBClusters",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:DescribeDimensionKeys",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetDimensionKeyDetails",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetResourceMetadata",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetResourceMetrics",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:ListAvailableResourceDimensions",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:ListAvailableResourceMetrics",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           }
       ]
   }
   ```

------

1. **정책 검토**를 선택합니다.

1. 정책의 이름과 설명(선택 사항)을 지정한 다음 **정책 검토**를 선택합니다.

이제 정책을 권한 세트 또는 역할에 연결할 수 있습니다. 다음 절차에서는 이 목적으로 사용할 수 있는 사용자가 이미 있다고 가정합니다.

**사용자에게 정책을 연결**

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **사용자**를 선택합니다.

1. 목록에서 기존 사용자를 선택합니다.
**중요**  
성능 개선 도우미을 사용하려면 사용자 정의 정책 외에 Amazon DocumentDB에 액세스할 수 있어야 합니다. 예를 들어 **AmazonDocDBReadOnlyAccess** 사전 정의 정책은 Amazon DocDB에 대한 읽기 전용 액세스를 제공합니다. 자세한 내용은 [정책을 사용한 액세스 권리](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.html#security_iam_access-manage)를 참조하세요.

1. **요약** 페이지에서 **권한 추가**를 선택합니다.

1. **기존 정책 직접 첨부**를 선택합니다. **검색**에 다음과 같이 정책 이름의 첫 문자 몇 개를 입력합니다.  
![\[정책 선택\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/pi-add-permissions.png)

1. 정책을 선택하고 **다음: 검토**를 선택합니다.

1. **권한 추가**를 선택합니다.

## 성능 개선 도우미에 대한 AWS KMS 정책 구성
<a name="USER_PerfInsights.access-control.cmk-policy"></a>

성능 개선 도우미는 AWS KMS key 를 사용하여 민감한 데이터를 암호화합니다. API 또는 콘솔을 통해 성능 개선 도우미를 활성화하면 다음 옵션이 있습니다:
+ 기본값을 선택합니다 AWS 관리형 키.

  Amazon DocumentDB는 새 DB 인스턴스에 AWS 관리형 키 를 사용합니다. Amazon DocumentDB는 AWS 계정에 AWS 관리형 키 대한를 생성합니다. AWS 계정에는 AWS 리전마다 Amazon DocumentDB에 AWS 관리형 키 대해 다른이 있습니다.
+ 고객 관리형 키를 선택합니다.

  고객 관리형 키를 지정하는 경우 성능 개선 도우미 API를 호출하는 계정의 사용자는 KMS 키에 대한 `kms:Decrypt` 및 `kms:GenerateDataKey` 권한이 필요합니다. IAM 정책을 통해 이러한 권한을 구성할 수 있습니다. 그러나 KMS 키 정책을 통해 이러한 권한을 관리하는 것이 좋습니다. 자세한 내용은 [AWS KMS에서 키 정책 사용](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)을 참조하세요.

**Example**  
다음 샘플 키 정책은 KMS 키 정책에 문을 추가하는 방법을 보여 줍니다. 이러한 문을 통해 성능 개선 도우미에 액세스할 수 있습니다. 사용 방법에 따라 몇 가지 제한을 변경할 AWS KMS수 있습니다. 정책에 문을 추가하기 전에 모든 문을 제거하세요.

# 성능 개선 도우미 대시보드를 사용한 지표 분석
<a name="performance-insights-analyzing"></a>

성능 개선 도우미 대시보드에는 성능 문제를 분석하여 해결할 수 있는 데이터베이스 성능 정보가 포함됩니다. 기본 대시보드 페이지에서 데이터베이스 로드 (DB load)에 대한 정보를 볼 수 있습니다. 대기 상태나 쿼리와 같은 차원별로 DB 로드를 "슬라이스"할 수 있습니다.

**Topics**
+ [성능 개선 도우미 대시보드 개요](performance-insights-dashboard-overview.md)
+ [성능 개선 도우미 대시보드 열기](performance-insights-dashboard-opening.md)
+ [대기 상태별 데이터베이스 로드 분석](performance-insights-analyzing-db-load.md)
+ [상위 쿼리 탭 개요](performance-insights-top-queries.md)
+ [데이터베이스 로드 차트에서 확대](performance-insights-zoom-db-load.md)

# 성능 개선 도우미 대시보드 개요
<a name="performance-insights-dashboard-overview"></a>

대시보드는 성능 개선 도우미와 상호 작용하는 가장 간편한 방법입니다. 다음 예제는 Amazon DocumentDB 인스턴스의 대시보드를 보여줍니다. 성능 개선 도우미 대시보드는 기본적으로 마지막 1시간 동안 수집된 데이터를 표시합니다.

![\[Amazon DocumentDB 인스턴스의 시간 경과에 따른 CPU 사용률 및 데이터베이스 로드를 보여주는 성능 개선 도우미 대시보드입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/overview-dashboard.png)


대시보드는 다음과 같은 부분으로 나뉩니다:

1. **카운터 지표** – 특정 성능 카운터 지표의 데이터를 보여줍니다.

1. **데이터베이스 로드** – **최대 vCPU** 선으로 표시된 바와 같이 DB 로드와 DB 인스턴스 용량을 비교하는 방식을 표시합니다.

1.  **상위 차원** – DB 로드에 기여하는 상위 차원을 보여줍니다. 이러한 차원에는 `waits`, `queries`, `hosts`, `databases`, 및 `applications`가 포함됩니다.

**Topics**
+ [카운터 지표 차트](#performance-insights-overview-metrics)
+ [데이터베이스 로드 차트](#performance-insights-overview-db-load-chart)
+ [상위 측정기준 테이블](#performance-insights-overview-top-dimensions)

## 카운터 지표 차트
<a name="performance-insights-overview-metrics"></a>

계수기 지표를 통해 성능 개선 도우미 대시보드에 최대 10개의 추가 그래프가 포함되도록 사용자 지정할 수 있습니다. 이 그래프는 수십 개의 운영 체제 지표를 보여줍니다. 이 정보와 데이터베이스 로드를 연관지으면 성능 문제를 식별하고 분석하는 데 도움이 됩니다.

**카운터 지표** 차트에는 성능 카운터의 데이터가 표시됩니다.

![\[시간 경과에 따른 CPU 사용률을 보여주는 카운터 지표 차트입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/counter-metrics.png)


**지표 관리**를 선택하여 성능 카운터를 변경합니다. 다음 스크린샷과 같이 여러 **OS 메트릭**을 선택할 수 있습니다. 지표에 대한 세부 정보를 보려면 지표 이름 위에 마우스 포인터를 놓습니다.

![\[OS 지표 옵션이 포함된 성능 개선 도우미 대시보드 지표 선택 인터페이스입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/overview-os-metrics.png)


## 데이터베이스 로드 차트
<a name="performance-insights-overview-db-load-chart"></a>

**데이터베이스 로드** 차트는 **최대 vCPU** 선으로 표시된 바와 같이 데이터베이스 활동과 인스턴스 용량을 비교하는 방식을 표시합니다. 기본적으로 누적 꺾은선형 차트는 단위 시간당 평균 활성 세션으로 DB 로드를 나타냅니다. DB 로드는 대기 상태에 따라 슬라이스(그룹화)됩니다.

![\[시간 경과에 따른 평균 활성 세션과, 끝 부근에서 CPU 사용량 스파이크를 보여주는 데이터베이스 로드 차트입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/database-load.png)


**차원을 기준으로 분할된 DB 로드**  
지원되는 차원별로 그룹화된 활성 세션으로 로드를 표시하도록 선택할 수 있습니다. 다음 이미지는 Amazon DocumentDB 인스턴스의 치수를 보여줍니다.

![\[드롭다운 목록에 다양한 ‘조각 기준’ 옵션을 표시하여 데이터베이스 로드를 보여주는 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/database-load-sliced.png)


**차원 항목에 대한 DB 로드 세부 정보**  
차원 내의 DB 로드 항목에 대한 세부 정보를 보려면 항목 이름 위로 마우스를 가져갑니다. 다음 이미지는 쿼리문에 대한 세부 정보를 보여줍니다.

![\[항목 이름 위로 마우스를 가져가면 추가 세부 정보를 표시하여 데이터베이스 로드를 보여주는 막대 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/database-load-details.png)


범례에서 선택한 기간의 항목에 대한 세부 정보를 보려면 해당 항목 위에 마우스 포인터를 놓습니다.

![\[막대 위로 마우스를 가져가면 추가 세부 정보를 표시하여 데이터베이스 로드를 보여주는 막대 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/database-load-hover.png)


## 상위 측정기준 테이블
<a name="performance-insights-overview-top-dimensions"></a>

**상위 측정기준 테이블**은 DB 로드를 다른 차원으로 슬라이스합니다. 차원은 DB 로드의 다양한 특성에 대한 카테고리 또는 "슬라이스"입니다. 측정기준이 쿼리인 경우 **상위 쿼리(Top queries)**에서는 DB 로드에 가장 많이 기여하는 쿼리 문을 보여줍니다.

다음 차원 탭 중 하나를 선택합니다.

![\[상위 쿼리 2개가 표시되는 상위 쿼리 차원 탭입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/top-dimensions.png)


다음 표는 각 탭에 대한 간략한 설명을 제공합니다.


| 탭 | 설명 | 
| --- | --- | 
|  상위 대기  |   데이터베이스 백엔드가 대기 중인 이벤트  | 
|  상위 쿼리  |  현재 실행 중인 쿼리 문  | 
|  상위 호스트  |  연결된 클라이언트의 호스트 IP 및 포트  | 
|  상위 데이터베이스  |  클라이언트가 연결된 데이터베이스의 이름  | 
|  상위 애플리케이션  |  데이터베이스에 연결된 애플리케이션의 이름  | 

**상위 쿼리(Top queries)** 탭을 사용하여 쿼리를 분석하는 방법을 알아보려면 [상위 쿼리 탭 개요](performance-insights-top-queries.md) 섹션을 참조하세요.

# 성능 개선 도우미 대시보드 열기
<a name="performance-insights-dashboard-opening"></a>

**AWS 관리 콘솔에서 성능 개선 도우미 대시보드를 보려면 다음 단계를 사용합니다.**

1. [https://console.aws.amazon.com/docdb/](https://console.aws.amazon.com/docdb/home#performance-insights) 에서 성능 개선 도우미 콘솔을 엽니다.

1. DB 인스턴스를 선택합니다. Amazon DocumentDB 인스턴스에 대한 성능 개선 도우미 대시보드가 표시됩니다.

   성능 개선 도우미가 사용 가능한 Amazon DocumentDB 인스턴스의 경우, 인스턴스 목록에서 **세션** 항목을 선택하여 대시보드에 도달할 수도 있습니다. **현재 활동**에서 **세션** 항목은 지난 5분 동안 평균 활동 세션의 데이터베이스 로드를 보여 줍니다. 로드가 막대 모양으로 표시됩니다. 막대가 비어 있으면 DB 인스턴스가 유휴 상태임을 뜻합니다. 로드가 증가하면 막대가 파란색으로 채워집니다. 로드에서 인스턴스 클래스의 가상 CPU(vCPU) 수를 전달하면 막대가 빨간색으로 바뀌고 병목 가능성을 나타냅니다.  
![\[Amazon DocumentDB 리전 클러스터와, 각 클러스터 인스턴스의 CPU 및 현재 활동을 보여주는 클러스터 페이지입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/opening-clusters.png)

1. (선택 사항) 오른쪽 상단의 버튼을 선택하여 다른 시간 간격을 선택합니다. 예를 들어 간격을 1시간으로 변경하려면 **1h**를 선택합니다.  
![\[5분에서 1주까지의 시간 간격 버튼입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/opening-time.png)

   다음 스크린샷에서 DB 로드 간격은 1시간입니다.  
![\[평균 활성 세션에서 측정된 데이터베이스 로드를 보여주는 막대 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/opening-db-load.png)

1. 데이터를 자동으로 새로 고치려면 **자동 새로 고침**을 활성화합니다.  
![\[자동 새로 고침 버튼이 활성화되어 시간 간격 버튼 옆에 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/opening-auto-refresh.png)

   성능 개선 도우미 대시보드는 새 데이터로 자동으로 고쳐집니다. 새로 고침 속도는 표시되는 데이터의 양에 따라 다릅니다: 
   + 5분은 5초마다 새로 고칩니다.
   + 1시간은 1분마다 새로 고칩니다.
   + 5시간은 1분마다 새로 고칩니다.
   + 24시간은 5분마다 새로 고칩니다.
   + 1주는 1시간마다 새로 고칩니다.

# 대기 상태별 데이터베이스 로드 분석
<a name="performance-insights-analyzing-db-load"></a>

**데이터베이스 로드(DB 로드)** 차트에 병목현상이 나타나면 어디에서 로드가 발생하는지 알 수 있습니다. 이렇게 하려면 **데이터베이스 로드** 차트 아래의 상위 로드 항목 테이블을 살펴보세요. 특정 항목(예: 쿼리 또는 응용프로그램)을 선택하여 해당 항목을 드릴다운하고 세부 정보를 확인합니다.

대기 및 상위 쿼리로 그룹화된 DB 로드는 일반적으로 성능 문제에 대한 가장 많은 통찰력을 제공합니다. 대기 상태를 기준으로 구분된 DB 로드는 데이터베이스의 리소스 또는 동시성 병목 현상 유무를 표시합니다. 이 경우, 상위 로드 항목 테이블의 **상위 쿼리** 탭에는 해당 로드를 구동하는 쿼리가 표시됩니다.

성능 문제를 진단하는 일반 워크플로우는 다음과 같습니다:

1. **데이터베이스 로드** 차트를 보면서 데이터베이스 로드가 **최대 CPU** 선을 상회하는지 확인합니다.

1. 상회하는 경우가 있으면 **데이터베이스 로드** 차트를 보면서 원인이 되는 대기 상태를 식별합니다.

1. 상위 로드 항목 테이블의 **상위 쿼리** 탭이 해당 대기 상태에 가장 크게 기여하는 쿼리를 확인하여 로드를 유발하는 다이제스트 쿼리를 식별합니다. 이러한 내용들을 **대기별 로드(AAS)** 열로 식별할 수 있습니다.

1. **상위 쿼리** 탭에서 이러한 다이제스트 쿼리 중 하나를 선택하여 해당 쿼리를 확장하고 해당 쿼리가 구성된 하위 쿼리를 확인합니다.

또한 **상위 호스트** 또는 **상위 애플리케이션**을 각각 선택하면 어떤 호스트나 애플리케이션이 가장 많은 로드를 주고 있는지 확인할 수 있습니다. 애플리케이션 이름은 Amazon DocumentDB 인스턴스에 대한 연결 문자열에 지정되어 있습니다. `Unknown`은 애플리케이션 필드가 지정되지 않았음을 나타냅니다.

예를 들어 다음 대시보드에서 **CPU** 대기 시간은 대부분의 DB 로드를 차지합니다. **상위 쿼리**에서 상위 쿼리를 선택하면 데이터베이스 로드 차트의 범위가 선택 쿼리로 인해 발생한 가장 많은 로드를 집중적으로 표시합니다.

![\[CPU 사용량 스파이크를 보여주는 데이터베이스 로드 차트입니다. 해당 상위 쿼리 탭에는 대기 상태에 가장 많이 기여하는 쿼리가 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/db-load-1.png)


![\[대기 상태에 가장 많이 기여하는 쿼리의 CPU 사용량 스파이크를 보여주는 데이터베이스 로드 차트입니다. 해당하는 상위 쿼리 탭에는 해당 쿼리의 하위 쿼리가 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/db-load-2.png)


# 상위 쿼리 탭 개요
<a name="performance-insights-top-queries"></a>

기본적으로 **상위 쿼리** 탭에는 DB 로드에 가장 큰 기여를 하는 쿼리가 표시됩니다. 쿼리 텍스트를 분석하여 쿼리를 조정하는 데 도움이 될 수 있습니다.

**Topics**
+ [쿼리 다이제스트](#performance-insights-top-queries-digests)
+ [대기별 로드(AAS)](#performance-insights-top-queries-aas)
+ [자세한 쿼리 정보 보기](#performance-insights-top-queries-query-info)
+ [명령문 쿼리 텍스트에 액세스](#performance-insights-top-queries-accessing-text)
+ [명령문 쿼리 텍스트 보기 및 다운로드](#performance-insights-top-queries-viewing-downloading)

## 쿼리 다이제스트
<a name="performance-insights-top-queries-digests"></a>

*쿼리 다이제스트*는 구조적으로 유사하지만 다른 리터럴 값을 가질 수 있는 여러 실제 쿼리의 합성입니다. 다이제스트는 하드 코딩된 값을 물음표로 바꿉니다. 예를 들어 쿼리 다이제스트는 다음과 같습니다:

```
{"find":"customerscollection","filter":{"FirstName":"?"},"sort":{"key":{"$numberInt":"?"}},"limit":{"$numberInt":"?"}}
```

이 다이제스트에는 다음 하위 쿼리가 포함될 수 있습니다:

```
{"find":"customerscollection","filter":{"FirstName":"Karrie"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
{"find":"customerscollection","filter":{"FirstName":"Met"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
{"find":"customerscollection","filter":{"FirstName":"Rashin"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
```

요약에서 문자 그대로의 쿼리 문을 보려면 쿼리를 선택한 다음 더하기 기호(`+`)를 선택합니다. 다음 스크린샷에서 선택한 쿼리는 다이제스트입니다.

![\[하위 쿼리가 하나 선택된 확장된 쿼리 다이제스트를 보여주는 상위 쿼리 테이블입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/top-queries-literal.png)


**참고**  
쿼리 요약은 유사한 쿼리 문을 그룹화하지만 중요한 정보는 수정하지 않습니다.

## 대기별 로드(AAS)
<a name="performance-insights-top-queries-aas"></a>

**상위 쿼리**에서 **대기별 로드(AAS)** 열은 각 상위 로드 항목과 관련된 데이터베이스 로드의 백분율을 나타냅니다. 이 열에는 현재 **DB 로드 차트**에서 어떤 그룹화 기준을 선택하든 그 기준에 따라 해당 항목의 로드가 반영됩니다. 예를 들어 **DB 로드차트**를 대기 상태별로 그룹화할 수 있습니다. 이 경우 **대기별 DB 로드** 막대는 쿼리가 영향을 미치는 대기 상태의 정도를 크기, 세그먼트 및 컬러 코드로 표시합니다. 또한 선택한 쿼리에 영향을 미치는 대기 상태를 표시합니다.

![\[CPU, IO 및 래치 대기 상태별로 그룹화된 데이터베이스 로드를 보여주는 막대 차트입니다. 해당 테이블에는 대기별 로드에 따른 상위 쿼리가 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/top-queries-aas.png)


## 자세한 쿼리 정보 보기
<a name="performance-insights-top-queries-query-info"></a>

**상위 쿼리** 표에서, *다이제스트 문*을 열어 해당 정보를 볼 수 있습니다. 맨 아래 창에 정보가 나타납니다.

![\[선택한 쿼리 문과 해당 쿼리 정보를 아래에 보여주는 상위 쿼리 테이블입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/top-queries-detailed.png)


다음과 같은 식별자(ID) 유형은 쿼리 문과 연결되어 있습니다.

1. **쿼리 ID 지원** – 쿼리 ID의 해시 값입니다. 이 값은 AWS Support로 작업할 때 쿼리 ID를 참조하는 용도로만 사용됩니다. AWS Support는 실제 쿼리 IDs 및 쿼리 텍스트에 액세스할 수 없습니다.

1. **다이제스트 ID 지원** – 다이제스트 ID의 해시 값입니다. 이 값은 AWS Support로 작업할 때 다이제스트 ID를 참조하는 용도로만 사용됩니다. AWS Support는 실제 다이제스트 IDs 및 쿼리 텍스트에 액세스할 수 없습니다.

## 명령문 쿼리 텍스트에 액세스
<a name="performance-insights-top-queries-accessing-text"></a>

기본적으로 **상위 쿼리** 테이블의 각 행은 각 쿼리문에 대해 500바이트의 쿼리 텍스트를 보여줍니다. 다이제스트 문이 500바이트 이상인 경우 성능 개선 도우미 대시보드에서 해당 문을 열어 더 많은 텍스트를 볼 수 있습니다. 이 경우 표시되는 쿼리의 최대 길이는 1KB입니다. 하위 SQL 문을 보는 경우 **다운로드**를 선택할 수도 있습니다.

## 명령문 쿼리 텍스트 보기 및 다운로드
<a name="performance-insights-top-queries-viewing-downloading"></a>

성능 개선 도우미 대시보드에서 쿼리 텍스트를 보거나 다운로드할 수 있습니다.

**성능 개선 도우미 대시보드에서 더 많은 쿼리 텍스트를 보려면 다음과 같이 하십시오**

1. [https://console.aws.amazon.com/docdb/](https://console.aws.amazon.com/docdb/) 에서 Amazon DocumentDB 콘솔을 엽니다.

1. 탐색 창에서 **성능 개선 도우미**을 선택합니다.

1. DB 인스턴스를 선택합니다. 선택한 DB 인스턴스에 대한 성능 개선 도우미 대시보드가 표시됩니다.

   500바이트 이상의 텍스트가 있는 SQL 문은 다음 이미지와 유사합니다:  
![\[하위 쿼리가 선택된 상위 쿼리 테이블입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/top-queries-statement.png)

1. 쿼리 정보 섹션을 조사하여 쿼리 텍스트를 더 확인합니다.  
![\[선택한 쿼리의 전체 텍스트를 보여주는 쿼리 정보 섹션입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/top-queries-query-text.png)

성능 개선 도우미 대시보드는 전체 쿼리문마다 최대 1KB까지 표시할 수 있습니다.

**참고**  
쿼리문을 복사하거나 다운로드하려면 팝업 차단을 비활성화합니다.

# 데이터베이스 로드 차트에서 확대
<a name="performance-insights-zoom-db-load"></a>

성능 개선 도우미 사용자 인터페이스의 다른 특성을 사용해 성능 데이터를 분석할 수 있습니다.

**클릭하여 끌어 확대**  
성능 개선 도우미 인터페이스에서 로드 차트의 작은 부분을 선택하여 확대해 자세히 볼 수 있습니다.

![\[확대를 위해 일부를 강조 표시하여 데이터베이스 로드를 보여주는 막대 차트입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/pi-zoom-1.png)


로드 차트의 한 부분을 확대하려면 시작 시간을 선택하고 원하는 기간 끝까지 끕니다. 이렇게 하면 선택한 영역이 강조 표시됩니다. 마우스를 놓으면 로드 차트가 선택한 영역을 확대하고 **상위 *항목*** 테이블이 다시 계산됩니다.

![\[확대된 부분과 더불어 해당하는 상위 대기 테이블을 아래에 보여주는 데이터베이스 로드 막대 차트입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/pi-zoom-2.png)


# 성능 개선 도우미 API를 사용하여 지표 검색
<a name="performance-insights-metrics"></a>

성능 개선 도우미를 활성화하면 API에서 인스턴스 성능에 대한 가시성을 제공합니다. Amazon CloudWatch Logs는 AWS 서비스에 대한 판매 모니터링 지표를 위한 신뢰할 수 있는 소스를 제공합니다.

성능 개선 도우미는 평균 활성 세션(AAS) 수로 측정되는 데이터베이스 로드에 대한 도메인 별 보기를 제공합니다. 이 지표는 API 소비자에게 2차원 시계열 데이터 세트로 표시됩니다. 데이터의 시간 차원은 쿼리된 시간 범위 내 각 시점에 대한 DB 로드 데이터를 제공합니다. 각 시점에서는 요청된 차원에 관해 해당 시점에서 측정되는 전체 로드를 분해합니다(예: `Query`, `Wait-state`, `Application` 또는 `Host`).

Amazon DocumentDB 성능 개선 도우미는 데이터베이스 성능을 분석하고 문제를 해결할 수 있도록 Amazon DocumentDB 인스턴스를 모니터링합니다. 성능 개선 도우미 데이터를 볼 수 있는 한 가지 방법은 AWS Management Console에서 보는 것입니다. 또한 성능 개선 도우미는 사용자가 자신의 데이터를 쿼리할 수 있도록 퍼블릭 API도 제공합니다. API를 사용하여 다음을 수행할 수 있습니다:
+ 데이터를 데이터베이스로 오프로드
+ 기존 모니터링 대시보드에 성능 개선 도우미 데이터 추가
+ 모니터링 도구 구축

성능 개선 도우미 API를 사용하려면 Amazon DocumentDB 인스턴스 중 하나에서 성능 개선 도우미를 활성화합니다. 성능 개선 도우미 활성화에 대한 자세한 내용은 [성능 개선 도우미 활성화 및 비활성화](performance-insights-enabling.md)(을)를 참조하십시오. 성능 개선 도우미 API에 대한 자세한 내용은 [ 성능 개선 도우미 API 참조](https://docs.aws.amazon.com/performance-insights/latest/APIReference/Welcome.html)를 참조하십시오.

성능 개선 도우미 API에서는 다음과 같은 작업을 제공합니다.


****  

|  성능 개선 도우미 작업  |  AWS CLI 명령  |  설명  | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html](https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html)  |  특정 기간에 대해 지표의 상위 N개 차원 키를 검색합니다.  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html)  |  DB 인스턴스 또는 데이터 소스에 지정된 차원 그룹의 속성을 검색합니다. 예를 들어 쿼리 ID를 지정하고 차원 세부 정보를 사용할 수 있는 경우 `GetDimensionKeyDetails`는 이 ID에 연결된 차원 `db.query.statement`의 전체 텍스트를 검색합니다. `GetResourceMetrics` 및 `DescribeDimensionKeys`는 대용량 쿼리 문 텍스트 검색을 지원하지 않으므로 이 작업을 유용하게 사용할 수 있습니다.  | 
| [GetResourceMetadata](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetadata.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html)  |  다양한 기능에 대한 특성을 검색합니다. 예를 들어 메타데이터는 특정 DB 인스턴스에서 특성이 켜지거나 꺼짐을 나타낼 수 있습니다.  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)  |  일정 기간의 데이터 소스 집합에 대한 성능 개선 도우미 지표를 검색합니다. 특정 차원 그룹 및 차원을 제공하고 각 그룹에 집계 및 필터링 기준을 제공할 수 있습니다.  | 
| [ListAvailableResourceDimensions](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceDimensions.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html)  |  지정된 인스턴스에서 지정된 각 지표 유형에 대해 쿼리할 수 있는 차원을 검색합니다.  | 
| [ListAvailableResourceMetrics](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceMetrics.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html)  |  지정된 DB 인스턴스에 대해 쿼리할 수 있는 지정된 지표 유형의 사용 가능한 모든 지표를 검색합니다.  | 

**Topics**
+ [AWS CLI 성능 개선 도우미용](#performance-insights-metrics-CLI)
+ [시계열 지표 조회](#performance-insights-metrics-time-series)
+ [AWS CLI 성능 개선 도우미 예제](#performance-insights-metrics-api-examples)

## AWS CLI 성능 개선 도우미용
<a name="performance-insights-metrics-CLI"></a>

 AWS CLI를 사용해 성능 개선 도우미 데이터를 볼 수 있습니다. 명령줄에 다음과 같이 입력하여 성능 개선 도우미용 AWS CLI 명령에 대한 도움말을 볼 수 있습니다.

```
aws pi help
```

가 AWS CLI 설치되어 있지 않은 경우 [설치에 대한 자세한 내용은 사용 설명서의 AWS 명령줄 인터페이스](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 설치를 참조하세요. *AWS CLI * 

## 시계열 지표 조회
<a name="performance-insights-metrics-time-series"></a>

`GetResourceMetrics` 연산은 성능 개선 도우미 데이터에서 시계열 지표를 하나 이상 조회합니다. `GetResourceMetrics`에는 지표 및 기간이 필요하고 데이터 포이트 목록이 포함된 응답을 반환합니다.

예를 들어는 다음 이미지와 같이를 AWS Management Console `GetResourceMetrics` 사용하여 카운터 지표 차트와 **데이터베이스 로드** 차트를 채웁니다. **** 

![\[카운터 지표 및 데이터베이스 로드 차트\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/perf-insights-api-charts.png)


`GetResourceMetrics`에서 반환하는 지표는 `db.load`를 제외하고 모두 표준 시계열 지표입니다. 이 지표는 **Database Load(데이터베이스 로드)** 차트에 표시됩니다. `db.load` 지표는 *차원*이라는 하위 구성 요소로 구분할 수 있다는 점에서 다른 시계열 지표와 다릅니다. 앞의 이미지에서 `db.load`는 `db.load`를 구성하는 대기 상태에 따라 구분되고 그룹화됩니다.

**참고**  
`GetResourceMetrics`에서는 `db.sampleload`도 반환할 수 있지만 `db.load` 지표는 대부분의 경우 적절합니다.

`GetResourceMetrics`에서 반환하는 카운터 지표에 대한 자세한 내용은 [카운터 지표에 대한 성능 개선 도우미](performance-insights-counter-metrics.md)를 참조하십시오.

지표에 대해서는 다음 계산이 지원됩니다:
+ 평균 – 일정 기간 동안 지표의 평균 값입니다. `.avg`를 지표 이름에 추가합니다.
+ 최소 – 일정 기간 동안 지표의 최소 값입니다. `.min`를 지표 이름에 추가합니다.
+ 최대 – 일정 기간 동안 지표의 최대 값입니다. `.max`를 지표 이름에 추가합니다.
+ 합계 – 일정 기간 동안 지표 값의 합계입니다. `.sum`를 지표 이름에 추가합니다.
+ 샘플 수 – 일정 기간 동안 지표가 수집된 횟수입니다. `.sample_count`를 지표 이름에 추가합니다.

예를 들어 지표를 300초 (5분) 동안 분당 1회씩 수집한다고 가정합시다. 각 분의 값은 1, 2, 3, 4, 5입니다. 이 경우 다음과 같은 계산 결과가 반환됩니다:
+ 평균 – 3
+ 최소 – 1
+ 최대 – 5
+ 합계 – 15
+ 샘플 수 – 5

`get-resource-metrics` AWS CLI 명령 사용에 대한 자세한 내용은 섹션을 참조하세요[https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html).

`--metric-queries` 옵션의 경우 결과를 얻고자 하는 쿼리를 한 개 이상 지정하십시오. 각 쿼리는 필수인 `Metric`과 선택 사항인 `GroupBy` 및 `Filter` 파라미터로 구성됩니다. 다음은 `--metric-queries` 옵션 사양을 보여주는 예입니다.

```
{
   "Metric": "string",
   "GroupBy": {
     "Group": "string",
     "Dimensions": ["string", ...],
     "Limit": integer
   },
   "Filter": {"string": "string"
     ...}
```

## AWS CLI 성능 개선 도우미 예제
<a name="performance-insights-metrics-api-examples"></a>

다음 예제에서는 성능 개선 도우미에 AWS CLI 를 사용하는 방법을 보여줍니다.

**Topics**
+ [카운터 지표 검색](#performance-insights-metrics-api-examples.CounterMetrics)
+ [상위 대기 상태에 대한 DB 로드 평균 검색](#performance-insights-metrics-api-examples.DBLoadAverage)
+ [상위 쿼리에 대한 DB 평균 로드 검색](#performance-insights-metrics-api-examples.topquery)
+ [쿼리로 필터링된 DB 로드 평균 검색](#performance-insights-metrics-api-examples.DBLoadAverageByQuery)

### 카운터 지표 검색
<a name="performance-insights-metrics-api-examples.CounterMetrics"></a>

다음 스크린샷은 AWS Management Console에 표시되는 카운터 지표 차트 2개를 나타낸 것입니다.

![\[카운터 지표 차트\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/performance-insights/perf-insights-api-counters-charts.png)


다음 예에서는 카운터 지표 차트 2개를 생성하기 위해 AWS Management Console 이 사용하는 것과 동일한 데이터를 수집하는 방법을 보여줍니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다:

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

Windows의 경우:

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

`--metrics-query` 옵션에 대해 파일을 지정하면 명령이 더 쉽게 읽히도록 할 수 있습니다. 다음 예에서는 옵션에 대해 query.json이라는 파일을 사용합니다. 이 파일의 콘텐츠는 다음과 같습니다.

```
[
    {
        "Metric": "os.cpuUtilization.user.avg"
    },
    {
        "Metric": "os.cpuUtilization.idle.avg"
    }
]
```

다음 명령을 실행하여 파일을 사용합니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다:

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

Windows의 경우:

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

앞의 예에서는 옵션에 다음 값을 지정합니다:
+ `--service-type` – Amazon DocumentDB 용 `DOCDB`
+ `--identifier` – DB 인스턴스에 대한 리소스 ID입니다
+ `--start-time` 및 `--end-time` – 쿼리할 기간에 대한 ISO 8601 `DateTime` 값으로서, 지원되는 형식은 여러 가지입니다

다음과 같이 1시간 범위로 쿼리합니다:
+ `--period-in-seconds` – 1분당 쿼리에 대한 `60`
+ `--metric-queries` – 쿼리 2개의 배열, 각 쿼리는 지표 1개에만 해당됨.

  지표 이름에는 지표를 유용한 범주로 분류하기 위해 점이 사용되고, 마지막 요소는 함수입니다. 예시에서 함수는 각 쿼리에 대해 `avg`입니다. Amazon CloudWatch와 마찬가지로 지원되는 함수는 `min`, `max`, `total` 및 `avg`입니다.

응답은 다음과 비슷합니다.

```
{
    "AlignedStartTime": "2022-03-13T08:00:00+00:00",
    "AlignedEndTime": "2022-03-13T09:00:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {
            "Key": {
                "Metric": "os.cpuUtilization.user.avg"
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-03-13T08:01:00+00:00", //Minute1
                    "Value": 3.6
                },
                {
                    "Timestamp": "2022-03-13T08:02:00+00:00", //Minute2
                    "Value": 2.6
                },
                //.... 60 datapoints for the os.cpuUtilization.user.avg metric
        {
            "Key": {
                "Metric": "os.cpuUtilization.idle.avg"
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-03-13T08:01:00+00:00",
                    "Value": 92.7
                },
                {
                    "Timestamp": "2022-03-13T08:02:00+00:00",
                    "Value": 93.7
                },
                //.... 60 datapoints for the os.cpuUtilization.user.avg metric 
            ]
        }
    ] //end of MetricList
} //end of response
```

응답에는 `Identifier`, `AlignedStartTime` 및 `AlignedEndTime`이 있습니다. `--period-in-seconds` 값이 `60`인 경우 시작 및 종료 시간은 분 단위로 맞춰져 있습니다. `--period-in-seconds` 값이 `3600`인 경우 시작 및 종료 시간은 시간 단위로 맞춰져 있습니다.

응답의 `MetricList`에는 다수의 항목이 있는데, 각각 `Key` 및 `DataPoints` 항목이 포함되어 있습니다. 각 `DataPoint`에는 `Timestamp` 및 `Value`이 있습니다. 쿼리는 1시간에 걸친 분당 데이터에 대한 것이므로 각 `Datapoints` 목록에는 `Timestamp1/Minute1`, `Timestamp2/Minute2` 등에서 최대 `Timestamp60/Minute60`까지 60개의 데이터 포인트가 있습니다.

쿼리는 두 가지 카운터 지표에 대한 것이므로 `MetricList` 응답에는 두 개의 요소가 있습니다.

### 상위 대기 상태에 대한 DB 로드 평균 검색
<a name="performance-insights-metrics-api-examples.DBLoadAverage"></a>

다음 예제는가 누적 영역 선 그래프를 생성하는 데 AWS Management Console 사용하는 것과 동일한 쿼리입니다. 이 예제에서는 로드를 상위 7개 대기 상태에 따라 나눈 마지막 시간 동안 `db.load.avg`을 검색합니다. 명령은 [카운터 지표 검색](#performance-insights-metrics-api-examples.CounterMetrics)의 명령과 동일합니다. 그러나 query.json 파일의 컨텐츠는 다음과 같습니다.

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_state", "Limit": 7 }
    }
]
```

다음 명령을 실행합니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다:

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

Windows의 경우:

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

예제에서는 상위 7개 대기 상태 중 `db.load.avg`과 `GroupBy`의 메트릭을 지정합니다. 이 예의 유효 값에 대한 자세한 내용은 *성능 개선 도우미 API 참조*의 [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)을 참조하십시오.

응답은 다음과 비슷합니다.

```
{
    "AlignedStartTime": "2022-04-04T06:00:00+00:00",
    "AlignedEndTime": "2022-04-04T06:15:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {//A list of key/datapoints
            "Key": {
                //A Metric with no dimensions. This is the total db.load.avg
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": "2022-04-04T06:01:00+00:00",//Minute1
                    "Value": 0.0
                },
                {
                    "Timestamp": "2022-04-04T06:02:00+00:00",//Minute2
                    "Value": 0.0
                },
                //... 60 datapoints for the total db.load.avg key
                ]
        },
        {
            "Key": {
                //Another key. This is db.load.avg broken down by CPU
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.wait_state.name": "CPU"
                }
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-04-04T06:01:00+00:00",//Minute1
                    "Value": 0.0
                },
                {
                    "Timestamp": "2022-04-04T06:02:00+00:00",//Minute2
                    "Value": 0.0
                },
                //... 60 datapoints for the CPU key
            ]
        },//... In total we have 3 key/datapoints entries, 1) total, 2-3) Top Wait States
    ] //end of MetricList
} //end of response
```

이 응답에는 `MetricList`에 항목이 3개 있습니다. 총 `db.load.avg`에 대해 하나의 엔트리가 있으며, 상위 3개 대기 상태 중 하나에 따라 나누어진 `db.load.avg`에 대해 각각 3개의 엔트리가 있습니다. 그룹화 차원이 있었기 때문에(첫 번째 예제와 달리) 메트릭의 각 그룹화에는 하나의 키가 있어야 합니다. 기본 카운터 지표 사용 사례처럼 각 지표에 키가 한 개만 있을 수는 없습니다.

### 상위 쿼리에 대한 DB 평균 로드 검색
<a name="performance-insights-metrics-api-examples.topquery"></a>

다음 예에서는 상위 10개 쿼리 문을 기준으로 `db.wait_state`를 그룹화합니다. SQL 문에는 두 가지 그룹이 있습니다:
+ `db.query` – `{"find":"customers","filter":{"FirstName":"Jesse"},"sort":{"key":{"$numberInt":"1"}}}`와 같은 전체 쿼리문
+ `db.query_tokenized` – `{"find":"customers","filter":{"FirstName":"?"},"sort":{"key":{"$numberInt":"?"}},"limit":{"$numberInt":"?"}}`와 같은 토큰화된 쿼리문

데이터베이스 성능을 분석할 때는 파라미터에 의해서만 다른 쿼리문을 하나의 논리 항목으로 고려하는 것이 유용할 수 있습니다. 따라서 쿼리 시에는 `db.query_tokenized`를 사용할 수 있습니다. 그러나 특히 `explain()`에 관심이 있는 경우에는 때때로 파라미터가 있는 전체 쿼리 문을 검토하는 것이 더 유용합니다. 토큰화된 쿼리와 전체 쿼리 사이에는 부모-자녀 관계가 있으며, 여러 전체 쿼리(자녀)가 동일한 토큰화된 쿼리(부모) 아래에 그룹화됩니다.

이 예의 명령은 [상위 대기 상태에 대한 DB 로드 평균 검색](#performance-insights-metrics-api-examples.DBLoadAverage)의 명령과 유사합니다. 그러나 query.json 파일의 컨텐츠는 다음과 같습니다.

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.query_tokenized", "Limit": 10 }
    }
]
```

다음 예에는 `db.query_tokenized`가 사용됩니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다:

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 3600 \
   --metric-queries file://query.json
```

Windows의 경우:

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z  ^
   --period-in-seconds 3600 ^
   --metric-queries file://query.json
```

이 예에서는 1시간 동안 쿼리를 실행하는데 1분은 초 단위로 구성됩니다.

예제에서는 상위 7개 대기 상태 중 `db.load.avg`과 `GroupBy`의 메트릭을 지정합니다. 이 예의 유효 값에 대한 자세한 내용은 *성능 개선 도우미 API 참조*의 [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)을 참조하십시오.

응답은 다음과 비슷합니다.

```
{
    "AlignedStartTime": "2022-04-04T06:00:00+00:00",
    "AlignedEndTime": "2022-04-04T06:15:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {//A list of key/datapoints
            "Key": {
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //... 60 datapoints for the total db.load.avg key
                ]
        },
               {
            "Key": {//Next key are the top tokenized queries
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.query_tokenized.db_id": "pi-1064184600",
                    "db.query_tokenized.id": "77DE8364594EXAMPLE",
                    "db.query_tokenized.statement": "{\"find\":\"customers\",\"filter\":{\"FirstName\":\"?\"},\"sort\":{\"key\":{\"$numberInt\":\"?\"}},\"limit\"
:{\"$numberInt\":\"?\"},\"$db\":\"myDB\",\"$readPreference\":{\"mode\":\"primary\"}}"
                }
            },
            "DataPoints": [
            //... 60 datapoints 
            ]
        },
        // In total 11 entries, 10 Keys of top tokenized queries, 1 total key 
    ] //End of MetricList
} //End of response
```

이 응답은 `MetricList`에 11개의 항목이 있는데 (전체 1개, 최상위 토큰화 SQL 10개) 각 항목에는 시간당 `DataPoints`가 24개입니다.

토큰화된 커리의 경우 각 차원 목록에 3개의 항목이 있습니다:
+ `db.query_tokenized.statement` – 토큰화된 쿼리문.
+ `db.query_tokenized.db_id `— 성능 개선 도우미에서 자동으로 생성하는 합성 ID입니다. 이 예에서는 `pi-1064184600` 합성 ID를 반환합니다.
+ `db.query_tokenized.id` – 성능 개선 도우미 내부의 쿼리에 대한 ID입니다.

  에서는 AWS Management Console이 ID를 지원 ID라고 합니다. ID는 AWS Support에서 데이터베이스 관련 문제를 해결하는 데 도움이 되도록 검사할 수 있는 데이터이기 때문에이 이름이 지정됩니다.는 데이터의 보안 및 개인 정보를 매우 중요하게 AWS 여기며 거의 모든 데이터는 로 암호화되어 저장됩니다 AWS KMS key. 따라서 내부 사람은이 데이터를 볼 AWS 수 없습니다. 앞의 예에서 `tokenized.statement`와 `tokenized.db_id` 모두 암호화되어 저장됩니다. 데이터베이스에 문제가 있는 경우 AWS 지원 ID를 참조하여 지원을 받을 수 있습니다.

쿼리 시 `Group`에서 `GroupBy`을 지정하면 편리할 수 있습니다. 그러나 반환되는 데이터에 대한 더 세분화된 제어를 위해서는 차원 목록을 지정하십시오. 예를 들어 `db.query_tokenized.statement`만 필요한 경우에는 query.json file에 `Dimensions` 속성을 추가할 수 있습니다.

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": {
            "Group": "db.query_tokenized",
            "Dimensions":["db.query_tokenized.statement"],
            "Limit": 10
        }
    }
]
```

### 쿼리로 필터링된 DB 로드 평균 검색
<a name="performance-insights-metrics-api-examples.DBLoadAverageByQuery"></a>

이 예에서 해당되는 API 쿼리는 [상위 쿼리에 대한 DB 평균 로드 검색](#performance-insights-metrics-api-examples.topquery)의 명령과 유사합니다. 그러나 query.json 파일의 컨텐츠는 다음과 같습니다.

```
[
 {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_state", "Limit": 5  }, 
        "Filter": { "db.query_tokenized.id": "AKIAIOSFODNN7EXAMPLE" }
    }
]
```

이 응답에서는 query.json 파일에 지정된 토큰화된 쿼리 AKIAIOSFODNN7EXAMPLE의 기여도에 따라 모든 값이 필터링됩니다. 키는 필터링된 쿼리에 영향을 준 상위 5개 대기 상태이기 때문에 필터가 없는 쿼리와 다른 순서를 따를 수도 있습니다.

# 성능 개선 도우미를 위한 Amazon CloudWatch 지표
<a name="performance-insights-cloudwatch"></a>

성능 개선 도우미는 Amazon CloudWatch에 지표를 자동으로 게시합니다. 동일한 데이터는 성능 개선 도우미에서 쿼리할 수 있지만 CloudWatch에 지표가 있으면 CloudWatch 경보를 더 쉽게 추가할 수 있습니다. 또한 기존 CloudWatch 대시보드에 지표를 더 쉽게 추가할 수 있습니다.


| 측정치 | 설명 | 
| --- | --- | 
|  DBLoad  |  Amazon DocumentDB의 활성 세션 수입니다. 일반적으로 사용자는 활성 세션의 평균 개수에 대한 데이터를 원합니다. 성능 개선 도우미에서 이 데이터는 `db.load.avg`로 쿼리됩니다.  | 
|  DBLoadCPU  |  대기 상태 유형이 CPU인 활성 세션 수입니다. 성능 개선 도우미에서 이 데이터는 `db.load.avg`로 쿼리되며 대기 상태 유형인 `CPU`를 기준으로 필터링됩니다.  | 
|  DBLoadNonCPU  |  대기 상태 유형이 CPU가 아닌 활성 세션 수입니다.  | 

**참고**  
이러한 메트릭은 DB 인스턴스에 로드가 있는 경우에만 CloudWatch에 게시됩니다.

CloudWatch 콘솔 AWS CLI, 또는 CloudWatch API를 사용하여 이러한 지표를 검사할 수 있습니다.

예를 들어, [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 명령을 실행하여 `DBLoad` 지표에 대한 통계를 가져올 수 있습니다.

```
aws cloudwatch get-metric-statistics \
    --region ap-south-1 \
    --namespace AWS/DocDB \
    --metric-name DBLoad  \
    --period 360 \
    --statistics Average \
    --start-time 2022-03-14T8:00:00Z \
    --end-time 2022-03-14T9:00:00Z \
    --dimensions Name=DBInstanceIdentifier,Value=documentdbinstance
```

이 예에서는 다음과 비슷한 출력이 생성됩니다.

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-03-14T08:42:00Z", 
            "Average": 1.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:24:00Z", 
            "Average": 2.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:54:00Z", 
            "Average": 6.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:36:00Z", 
            "Average": 5.7, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:06:00Z", 
            "Average": 4.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:00:00Z", 
            "Average": 5.2, 
            "Unit": "None"
        }
    ], 
    "Label": "DBLoad"
}
```

CloudWatch 콘솔에서 `DB_PERF_INSIGHTS` 메트릭 산술 함수를 사용하여 Amazon DocumentDB 성능 개선 도우미 카운터 메트릭을 쿼리할 수 있습니다. `DB_PERF_INSIGHTS` 함수에는 분 단위로 `DBLoad` 메트릭도 포함됩니다. 이러한 지표에 대해 CloudWatch 경보를 설정할 수 있습니다. 경보를 생성하는 방법에 대한 자세한 내용은 [AWS 데이터베이스에서 성능 개선 도우미 카운터 지표에 대한 경보 생성을 참조하세요](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html).

CloudWatch에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch란 무엇입니까?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)를 참조하세요.

# 카운터 지표에 대한 성능 개선 도우미
<a name="performance-insights-counter-metrics"></a>

카운터 메트릭은 성능 개선 도우미 대시보드의 운영 체제 메트릭입니다. 이 정보와 데이터베이스 로드를 연관 지으면 성능 문제를 식별하고 분석하는 데 도움이 됩니다.

## 성능 개선 도우미 운영 체제 카운터
<a name="performance-insights-counter-metrics-counters"></a>

Amazon DocumentDB 성능 개선 도우미와 함께 사용할 수 있는 운영 체제 카운터는 다음과 같습니다.


| 카운터 | 유형 | 측정치 | 
| --- | --- | --- | 
| 활성화 | 메모리 | os.memory.active | 
| 버퍼 | 메모리 | os.memory.buffers | 
| 캐시됨 | 메모리 | os.memory.cached | 
| 더티 | 메모리 | os.memory.dirty | 
| 사용 가능 | 메모리 | os.memory.free | 
| 비활성 | 메모리 | os.memory.inactive | 
| 매핑됨 | 메모리 | os.memory.mapped | 
| pageTables | 메모리 | os.memory.pageTables | 
| 슬래브 | 메모리 | os.memory.slab | 
| 총합 | 메모리 | os.memory.total | 
| writeback | 메모리 | os.memory.writeback | 
| 유휴 | cpuUtilization | os.cpuUtilization.idle | 
| 시스템 | cpuUtilization | os.cpuUtilization.system | 
| 총합 | cpuUtilization | os.cpuUtilization.total | 
| 사용자 | cpuUtilization | os.cpuUtilization.user | 
| 대기 | cpuUtilization | os.cpuUtilization.wait | 
| 1 | loadAverageMinute | os.loadAverageMinute.one | 
| 15 | loadAverageMinute | os.loadAverageMinute.fifteen | 
| 5 | loadAverageMinute | os.loadAverageMinute.five | 
| 캐시됨 | 스왑 | os.swap.cached | 
| 사용 가능 | 스왑 | os.swap.free | 
| 인 | 스왑 | os.swap.in | 
| 아웃 | 스왑 | os.swap.out | 
| 총합 | 스왑 | os.swap.total | 
| rx | 네트워크 | os.network.rx | 
| tx | 네트워크 | os.network.tx | 
| numVCPUs | 일반 | os.general.numVCPUs | 