

# CloudWatch를 사용하여 Athena 쿼리 지표 모니터링
<a name="query-metrics-viewing"></a>

[CloudWatch에 쿼리 지표 게시](athena-cloudwatch-metrics-enable.md) 옵션을 선택하면 Athena는 쿼리 관련 지표를 Amazon CloudWatch에 게시합니다. 사용자 지정 대시보드를 만들거나, CloudWatch의 지표에 대해 경보 및 트리거를 설정하거나, Athena 콘솔에서 사전 입력된 대시보드를 직접 사용할 수 있습니다.

작업 그룹의 쿼리에 대해 쿼리 지표를 활성화하면 Athena 콘솔에서 각 작업 그룹에 대한 **작업 그룹** 패널의 **지표** 탭에 지표가 표시됩니다.

Athena는 다음의 지표를 CloudWatch 콘솔에 게시합니다.
+ `DPUAllocated` - 쿼리를 실행하기 위해 용량 예약에 프로비저닝된 총 데이터 처리 단위(DPU) 수입니다.
+ `DPUConsumed` - 예약에서 특정 시간에 `RUNNING` 상태의 쿼리가 소비하는 DPU 수입니다. 작업 그룹이 용량 예약과 연결되어 있고 예약과 연결된 모든 작업 그룹을 포함하는 경우에만 생성되는 지표입니다.
+ `DPUCount` - 쿼리가 소비하는 최대 DPU 수로, 쿼리가 완료될 때 정확히 한 번 게시됩니다.
+ `EngineExecutionTime` - 쿼리를 실행하는 데 걸린 시간(밀리초)입니다.
+ `ProcessedBytes` - DML 쿼리당 Athena가 스캔한 바이트 수입니다.
+ `QueryPlanningTime` - Athena가 쿼리 처리 흐름을 계획하는 데 걸린 시간(밀리초)입니다.
+ `QueryQueueTime` - 쿼리가 리소스를 기다리면서 쿼리 대기열에 있던 시간(밀리초)입니다.
+ `ServicePreProcessingTime` - Athena가 쿼리 엔진에 쿼리를 제출하기 전에 쿼리를 사전 처리하는 데 걸린 시간(밀리초)입니다.
+ `ServiceProcessingTime` - 쿼리 엔진이 쿼리 실행을 완료한 후 Athena가 쿼리 결과를 처리하는 데 걸린 시간(밀리초)입니다.
+ `TotalExecutionTime` - Athena가 DDL 또는 DML 쿼리를 실행하는 데 걸린 시간(밀리초)입니다.

자세한 설명은 이 문서 뒷부분의 [Athena의 CloudWatch 지표 및 차원 목록](#athena-cloudwatch-metrics-table) 섹션을 참조하세요.

이러한 지표에는 다음과 같은 차원이 있습니다.
+ `CapacityReservation` - 해당하는 경우 쿼리를 실행하는 데 사용된 용량 예약의 이름입니다.
+ `QueryState` - `SUCCEEDED`, `FAILED` 또는 `CANCELED`
+ `QueryType` - `DML`, `DDL` 또는 `UTILITY`
+ `WorkGroup` - 작업 그룹의 이름입니다.

Athena는 다음의 지표를 `AmazonAthenaForApacheSpark` 네임스페이스 아래 CloudWatch 콘솔에 게시합니다.
+ `DPUCount` - 세션 중에 계산을 실행하는 데 사용된 DPU 수입니다.

이 지표에는 다음과 같은 차원이 있습니다.
+ `SessionId` - 계산이 제출되는 세션의 ID입니다.
+ `WorkGroup` - 작업 그룹의 이름입니다.

자세한 내용은 이 주제의 후반부에서 [Athena의 CloudWatch 지표 및 차원 목록](#athena-cloudwatch-metrics-table) 단원을 참조하세요. Athena 사용량 지표에 대한 자세한 내용은 [CloudWatch를 사용하여 Athena 사용량 지표 모니터링](monitoring-athena-usage-metrics.md) 섹션을 참조하세요.

Athena 콘솔 또는 CloudWatch 콘솔에서 쿼리 지표를 볼 수 있습니다.

## Athena 콘솔에서 쿼리 지표 보기
<a name="query-metrics-viewing-athena-console"></a>

**Athena 콘솔에서 작업 그룹에 대한 쿼리 지표를 보려면**

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

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

1. 탐색 창에서 **작업 그룹(Workgroups)**을 선택합니다.

1. 목록에서 원하는 작업 그룹을 선택한 다음 **지표(Metrics)** 탭을 선택합니다.

   지표 대시보드가 표시됩니다.
**참고**  
작업 그룹에 대한 지표를 최근에 활성화했거나 최근 쿼리 활동이 없었다면 대시보드의 그래프가 비어 있을 수 있습니다. 다음 단계에서 지정하는 간격마다 CloudWatch에서 쿼리 활동을 검색합니다.

1. **지표(Metrics)** 섹션에서 Athena가 CloudWatch에서 쿼리 활동을 가져오는 데 사용할 지표 간격을 선택하거나, 사용자 지정 간격을 지정합니다.  
![\[Athena 콘솔에서 작업 그룹에 대한 지표 검색 간격 지정.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/wg-custom-interval.png)

1. 표시된 지표를 새로 고치려면 새로 고침 아이콘을 선택합니다.  
![\[새로 고침 아이콘을 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/wg-refresh-metrics.png)

1. 새로 고침 아이콘 옆에 있는 화살표를 클릭하여 지표 표시를 업데이트할 빈도를 선택합니다.  
![\[Athena 콘솔에서 작업 그룹 지표를 표시하기 위한 새로 고침 간격 선택.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/wg-choose-refresh-interval.png)

## CloudWatch 콘솔에서 쿼리 지표 보기
<a name="query-metrics-viewing-cw-console"></a>

**Amazon CloudWatch 콘솔에서 지표를 보려면**

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

1. 탐색 창에서 **지표**, **모든 지표**를 선택합니다.

1. **AWS/Athena** 네임스페이스를 선택합니다.

## AWS CLI를 사용하여 쿼리 지표 보기
<a name="query-metrics-viewing-cli"></a>

**AWS CLI를 사용하여 지표를 보려면**
+ 다음 중 하나를 수행하세요.
  + Athena에 대한 지표를 나열하려면 명령 프롬프트를 열고 다음 명령을 사용합니다.

    ```
    aws cloudwatch list-metrics --namespace "AWS/Athena"
    ```
  + 사용 가능한 모든 지표의 목록을 보려면 다음 명령을 사용합니다.

    ```
    aws cloudwatch list-metrics"
    ```

## Athena의 CloudWatch 지표 및 차원 목록
<a name="athena-cloudwatch-metrics-table"></a>

Athena에서 CloudWatch 지표를 활성화했다면 다음 지표가 작업 그룹별로 CloudWatch로 전송됩니다. 다음 지표에서 `AWS/Athena` 네임스페이스를 사용합니다.


| 지표 이름 | 설명 | 
| --- | --- | 
| DPUAllocated |  쿼리를 실행하기 위해 용량 예약에 프로비저닝된 총 데이터 처리 단위(DPU) 수입니다.  | 
| DPUConsumed | 예약에서 특정 시간에 RUNNING 상태의 쿼리가 소비하는 DPU 수입니다. 이 지표는 작업 그룹이 용량 예약과 연결되어 있고 예약과 연결된 모든 작업 그룹을 포함하는 경우에만 생성됩니다. 작업 그룹을 한 예약에서 다른 예약으로 이동하면 해당 작업 그룹이 첫 번째 예약에 속했던 시점의 데이터가 지표에 포함됩니다. 용량 예약에 대한 자세한 내용은 [쿼리 처리 용량 관리](capacity-management.md) 섹션을 참조하세요. | 
| DPUCount | 쿼리가 소비하는 최대 DPU 수로, 쿼리가 완료될 때 정확히 한 번 게시됩니다. 이 지표는 용량 예약에 연결된 작업 그룹에 대해서만 생성됩니다. | 
| EngineExecutionTime |  쿼리를 실행하는 데 걸린 시간(밀리초)입니다.  | 
| ProcessedBytes |  DML 쿼리당 Athena가 스캔한 바이트 수입니다. 취소된 쿼리의 경우(한도에 다다른 경우, 쿼리가 사용자에 의해 또는 자동으로 취소됨), 취소 시간 이전에 스캔한 데이터의 양을 포함합니다. DDL 쿼리에 대해서는 이 지표가 보고되지 않습니다.  | 
| QueryPlanningTime | Athena가 쿼리 처리 흐름을 계획하는 데 걸린 시간(밀리초)입니다. 여기에는 데이터 소스로부터 테이블 파티션을 검색하는 데 소요된 시간이 포함됩니다. 쿼리 엔진은 쿼리 계획을 수행하기 때문에 쿼리 계획 시간은 EngineExecutionTime의 하위 집합입니다. | 
| QueryQueueTime | 쿼리가 리소스를 기다리면서 쿼리 대기열에 있던 시간(밀리초) 입니다. 일시적인 오류가 발생하면 쿼리가 자동으로 대기열에 다시 추가될 수 있습니다. | 
| ServicePreProcessingTime | Athena가 쿼리 엔진에 쿼리를 제출하기 전에 쿼리를 사전 처리하는 데 걸린 시간(밀리초)입니다. | 
| ServiceProcessingTime | 쿼리 엔진이 쿼리 실행을 완료한 후 Athena가 쿼리 결과를 처리하는 데 걸린 시간(밀리초)입니다. | 
| TotalExecutionTime | Athena가 DDL 또는 DML 쿼리를 실행하는 데 걸린 시간(밀리초)입니다. TotalExecutionTime에는 QueryQueueTime, QueryPlanningTime, EngineExecutionTime 및 ServiceProcessingTime이 포함됩니다.. | 

Athena의 이 지표에는 다음과 같은 차원이 있습니다.


| 차원 | 설명 | 
| --- | --- | 
| CapacityReservation |  해당하는 경우 쿼리를 실행하는 데 사용된 용량 예약의 이름입니다. 용량 예약이 사용되지 않으면 이 차원은 데이터를 반환하지 않습니다.  | 
| QueryState |  쿼리 상태입니다. 유효한 통계: SUCCEEDED, FAILED 또는 CANCELED.  | 
| QueryType |  쿼리 유형입니다. 유효한 통계: `DDL`, `DML` 또는 `UTILITY`. 실행된 쿼리 문의 유형입니다. `DDL`은 데이터 정의 언어(DDL) 쿼리 문을 나타냅니다. `DML`은 데이터 조작 언어(DML) 쿼리 문을 나타냅니다(예: `CREATE TABLE AS SELECT`). `UTILITY`는 DDL 및 DML 이외의 쿼리 문(예:`SHOW CREATE TABLE` 또는 `DESCRIBE TABLE`)을 나타냅니다.  | 
| WorkGroup |  작업 그룹의 이름입니다.  | 