

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

# 지표 쿼리 편집기 사용
<a name="CloudWatch-using-the-metric-query-editor"></a>

지표 쿼리 편집기를 사용하면 **지표 검색** 및 **지표 쿼리**와 같은 두 가지 유형의 쿼리를 빌드할 수 있습니다. **지표 쿼리** 옵션은 CloudWatch Metrics Insights를 사용하여 데이터를 쿼리합니다.

## 공통 쿼리 편집기 필드
<a name="metrics-insights-common-fields"></a>

 **지표 검색** 및 **지표 쿼리** 모드 모두에 공통된 세 가지 필드가 있습니다.

 **공통 필드**

**Id**  
`GetMetricData` API를 사용하려면 모든 쿼리에 고유한 ID가 있어야 합니다. 이 필드를 사용하여 원하는 ID를 지정합니다. ID는 숫자, 문자, 밑줄을 포함할 수 있으며, 소문자로 시작해야 합니다. ID를 지정하지 않은 경우 Amazon Managed Grafana는 `query[refId of the current query row]` 패턴을 사용하여 ID를 생성합니다. 예를 들어 `queryA`는 패널 편집기의 첫 번째 쿼리 행을 나타냅니다.

**Period**  
기간은 특정 Amazon CloudWatch 통계와 연관된 시간의 길이입니다. 기간은 초 단위로 정의됩니다. 유효한 값으로, 1, 5, 10, 30 또는 60의 배수가 포함됩니다. 기간 필드를 비워 두거나 `auto`로 설정하면 시간 범위 및 CloudWatch 보존 정책에 따라 자동으로 계산됩니다. 사용하는 수식은 `time range in seconds / 2000`입니다. 이에 따라 보존을 기반으로 기간을 제거한 후 미리 정의된 기간 배열 [60, 300, 900, 3600, 21600, 86400]에서 다음으로 높은 값으로 이동합니다. Amazon Managed Grafana에서 사용 중인 기간을 확인하려면 쿼리 편집기에서 **쿼리 미리 보기 표시**를 선택하세요.

**Alias**  
다음 별칭 패턴이 적용됩니다.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/CloudWatch-using-the-metric-query-editor.html)

# 지표 검색 옵션 사용
<a name="CloudWatch-using-the-metric-search"></a>

 **지표 검색**에서 유효한 쿼리를 생성하려면 네임스페이스, 지표 이름 및 하나 이상의 통계를 지정해야 합니다. **정확히 일치**가 켜져 있는 경우 쿼리하려는 지표의 모든 차원도 지정해야 합니다. 지표 스키마는 정확히 일치해야 합니다. 자세한 내용은 [CloudWatch 검색 표현식 구문](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html)을 참조하세요.

**정확히 일치**가 꺼진 경우 필터링하려는 차원 수를 지정할 수 있습니다. 필터 기준과 일치하는 최대 100개의 지표가 반환됩니다.

## 차원 와일드카드 문자를 사용한 동적 쿼리
<a name="dynamic-queries-using-dimension-wildcards"></a>

 하나 이상의 차원 값에 별표(`*`) 와일드카드 문자를 사용하여 동적 지표 목록을 모니터링할 수 있습니다.

 이를 통해 EC2 인스턴스 또는 컨테이너와 같은 AWS 리소스에 대한 지표를 모니터링할 수 있습니다. 예를 들어 새로운 인스턴스가 오토 스케일링 이벤트의 일환으로 생성되면 새로운 인스턴스 ID를 추적하지 않아도 그래프에 자동으로 표시됩니다. 이 기능은 현재 최대 100개의 지표 검색으로 제한됩니다. **쿼리 미리 보기 표시**를 선택하여 와일드카드 문자를 지원하도록 자동으로 빌드된 검색 표현식을 볼 수 있습니다.

 기본적으로 검색 표현식은 쿼리된 지표가 정의된 차원 이름과 정확히 일치해야 하는 방식으로 정의됩니다. 즉, 이 예제에서는 정확히 하나의 `InstanceId` 차원을 포함하는 지표만 반환됩니다.

 다른 차원이 정의된 지표를 포함하려면 **정확히 일치**를 끄면 됩니다. 또한 **정확히 일치**를 끄면 와일드카드 문자를 사용하지 않더라도 검색 표현식이 생성됩니다. Grafana는 최소한 네임스페이스, 지표 이름 및 정의된 모든 차원과 일치하는 지표를 검색합니다.

## 다중 값 템플릿 변수
<a name="cloudwatch-multi-value-template-variables"></a>

 다중 값 템플릿 변수를 기반으로 차원 값을 정의할 때 검색 표현식을 사용하여 일치하는 지표를 쿼리합니다. 이렇게 하면 하나의 쿼리에서 여러 템플릿 변수를 사용할 수 있습니다. 또한 **정확히 일치** 옵션이 꺼진 쿼리에서 템플릿 변수를 사용할 수 있습니다.

 검색 표현식은 현재 1,024자로 제한되므로 값 목록이 긴 경우 쿼리가 실패할 수 있습니다. 특정 차원 이름에 대한 값이 있는 모든 지표를 쿼리하려면 `All` 옵션 대신 별표(`*`) 와일드카드 문자를 사용하는 것이 좋습니다.

 다중 값 템플릿 변수의 사용은 차원 값에 대해서만 지원됩니다. `Region`, `Namespace` 또는 `Metric Name`에 다중 값 템플릿 변수를 사용하는 것은 지원되지 않습니다.

## 지표 수학 표현식
<a name="cloudwatch-metric-math-expressions"></a>

 수학 함수를 사용해 CloudWatch 지표 위에서 연산을 수행하여 새 시계열 지표를 생성할 수 있습니다. 산술 연산자, 단항 뺄셈 및 기타 함수가 지원되며 CloudWatch 지표에 적용할 수 있습니다. 지표 수학에 대한 자세한 설명은 [지표 수학 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)을 참조하세요.

 예를 들어 지표에 산술 연산을 적용하려면 원시 지표에 ID(고유 문자열)를 지정합니다. 그런 다음, 이 ID를 사용하고 새 지표의 `Expression` 필드에 산술 연산을 적용할 수 있습니다.

 `Expression` 필드를 사용하여 `queryA * 2`와 같은 다른 쿼리를 참조하는 경우 해당 쿼리를 기반으로 알림 규칙을 생성할 수 없습니다.

## Period
<a name="cloudwatch-period"></a>

 ‘기간’은 특정 Amazon CloudWatch 통계와 연관된 시간의 길이입니다. 기간은 초 단위로 정의됩니다. 유효한 값으로, 1, 5, 10, 30 또는 60의 배수가 포함됩니다.

기간 필드를 비워 두거나 **자동**으로 설정하면 시간 범위에 따라 자동으로 계산됩니다. 사용된 공식은 `time range in seconds / 2000`이며, 이후 미리 정의된 기간 `[60, 300, 900, 3600, 21600, 86400]`의 배열에서 다음으로 높은 값으로 이동합니다. Amazon Managed Grafana에서 사용 중인 기간을 확인하려면 쿼리 편집기에서 **쿼리 미리 보기 표시**를 선택하세요.

## Grafana 패널에서 CloudWatch 콘솔로 딥링크 연결
<a name="deep-linking-from-grafana-panels-to-the-cloudwatch-console"></a>

 패널에서 시계열을 선택하면 **CloudWatch 콘솔에서 보기** 링크가 있는 컨텍스트 메뉴가 표시됩니다. 이 링크를 선택하면 CloudWatch 콘솔로 이동하는 새 탭이 열리고 해당 쿼리에 대한 모든 지표가 표시됩니다. 현재 CloudWatch 콘솔에 로그인하지 않은 경우 링크를 누르면 로그인 페이지로 이동합니다. 제공된 링크는 모든에 유효하지 AWS 계정 만 Grafana에서 선택한 데이터 소스에 해당하는에 로그인 AWS 계정 한 경우에만 올바른 지표를 표시합니다.

 이 기능은 지표 수학 표현식을 기반으로 하는 지표에서 사용할 수 없습니다.

# 지표 쿼리 옵션을 사용하여 CloudWatch Metrics Insights 데이터 쿼리
<a name="CloudWatch-using-the-metric-query"></a>

**참고**  
Amazon CloudWatch Metrics Insights는 평가판으로 제공됩니다. CloudWatch Metrics Insights 기능은 모든 AWS 계정에서 이용 가능합니다. 기능은 변경될 수 있습니다.

 **지표 쿼리 편집기**에서 `metric query` 모드를 선택하여 CloudWatch Metrics Insights 데이터를 쿼리할 수 있습니다.

 CloudWatch Metrics Insights는 대규모 지표를 쿼리하는 데 사용할 수 있는 강력한 고성능 SQL 쿼리 엔진입니다. 빠르고 유연한 SQL 기반 쿼리 엔진으로, 모든 CloudWatch 지표 내 추세와 패턴을 실시간으로 식별하는 데 사용할 수 있습니다. SQL 언어를 사용합니다. Metrics Insights 쿼리 구문에 대한 자세한 내용은 [쿼리 구문 및 키워드](#metrics-insights-syntax-keywords) 섹션을 참조하세요.

## 쿼리 구문 및 키워드
<a name="metrics-insights-syntax-keywords"></a>

CloudWatch Metrics Insights는 SQL 언어를 사용합니다. 다음 예제에서는 쿼리 구문을 보여줍니다.

```
SELECT FUNCTION(metricName)
FROM namespace | [ SCHEMA(namespace[, labelKey [, ...] ]) ]
     [ WHERE labelKey OPERATOR labelValue [AND|OR|([...])*] [, ...] ]
[ GROUP BY labelKey [, ...]]
[ ORDER BY FUNCTION() [DESC | ASC] ]
[ LIMIT number]
```

 키워드는 대소문자를 구분하지 않지만 식별자는 대소문자를 구분합니다. 식별자에는 지표 이름, 네임스페이스 및 차원이 포함됩니다.

 다음 표에서는 가능한 키워드 및 해당 설명을 제공합니다.


|  키워드  |  설명  | 
| --- | --- | 
|  FUNCTION  |  필수 사항입니다. 사용할 집계 함수를 지정하고 쿼리할 지표의 이름도 지정합니다. 유효한 값은 AVG, COUNT, MAX, MIN 및 SUM입니다. | 
|  MetricName   |  필수 사항입니다. 예를 들어 CPUUtilization입니다. | 
|  FROM  |  필수 사항입니다. 지표의 소스를 지정합니다. 쿼리할 지표를 포함하는 지표 네임스페이스 또는 SCHEMA 테이블 함수를 지정할 수 있습니다. 일부 네임스페이스 예제로 AWS/EC2 및 AWS/Lambda가 있습니다. | 
|  SCHEMA  |  (선택 사항) 쿼리 결과를 필터링하여 정확히 일치하는 지표 또는 일치하지 않는 지표만 표시합니다. | 
|  WHERE  |  (선택 사항) 결과를 필터링하여 지정된 표현식과 일치하는 지표만 표시합니다. 예를 들어 WHERE InstanceType \$1= 'c3.4xlarge'입니다. | 
|  GROUP BY  |  (선택 사항) 쿼리 결과를 여러 시계열로 그룹화합니다. 예를 들어 GROUP BY ServiceName입니다. | 
|  ORDER BY  |  (선택 사항) 반환할 시계열의 순서를 지정합니다. 옵션으로 ASC 및 DESC가 있습니다. | 
|  LIMIT  |  (선택 사항) 반환할 시계열 수를 제한합니다. | 

다음은 몇 가지 예시입니다.
+ 

  ```
  SELECT AVG(CPUUtilization) FROM "AWS/EC2" 
  ```

   `AWS/EC2` 네임스페이스의 모든 `CPUUtilization` 지표를 일치시키고(이때 차원 무시) 집계된 단일 시계열을 반환합니다.
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2")
  ```

   `AWS/EC2` 네임스페이스에서 정의된 차원이 없는 `CPUUtilization` 지표만 일치시킵니다.
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId)
  ```

   CloudWatch에 보고된 `CPUUtilization` 지표를 일치시킵니다(이때 정확히 하나의 차원 `InstanceId` 포함).
+ 

  ```
  SELECT SUM(RequestCount) FROM SCHEMA("AWS/ApplicationELB", LoadBalancer,
  AvailabilityZone)
  ```

   `AWS/ApplicationELB`에서 CloudWatch에 보고된 `RequestCount` 지표만 일치시킵니다(이때 정확히 두 개의 `LoadBalancer` 및 `AvailabilityZone` 차원 포함).

 레이블 값은 작은따옴표로 묶어야 합니다.

### 이스케이프 문자
<a name="escape-characters"></a>

쿼리에서 레이블 값은 항상 작은따옴표로 묶어야 합니다.   예를 들어 `SELECT MAX(CPUUtilization) FROM "AWS/EC2" WHERE AutoScalingGroupName = 'my-production-fleet'`입니다.

 문자, 숫자 및 밑줄(`_`) 이외의 문자가 포함된 지표 네임스페이스, 지표 이름 및 레이블 키는 큰따옴표로 묶어야 합니다. 예를 들어 `SELECT MAX("My.Metric")`입니다. 이 중 하나에 큰따옴표 자체(예: `Bytes"Input"`)가 포함된 경우 `SELECT AVG("Bytes\"Input\"")`에서와 같이 해당 큰따옴표를 백슬래시로 이스케이프 처리해야 합니다. 지표 네임스페이스, 지표 이름 또는 레이블 키에 Metrics Insights의 예약된 키워드 단어가 포함되어 있는 경우 이러한 단어도 큰따옴표로 묶어야 합니다. 예를 들어 `LIMIT`으로 이름 붙인 지표가 있는 경우 `SELECT AVG("LIMIT")`를 사용합니다. 예약어가 포함되어 있지 않더라도 네임스페이스, 지표 이름 또는 레이블을 큰따옴표로 묶는 것도 유효합니다.

## 빌더 모드 및 코드 모드
<a name="metrics-insights-query-modes"></a>

`Builder` 모드 또는 `Code` 모드에서 쿼리를 생성할 수 있습니다.

**`Builder` 모드에서 쿼리를 생성하는 방법**

1. 이전 테이블의 정보를 사용하여 지표 네임스페이스, 지표 이름, 필터, 그룹 및 정렬 옵션을 찾아 선택하세요.

1. 이러한 각 옵션에 대해 가능한 옵션 목록 중에서 선택하세요.

**`Code` 모드에서 쿼리를 생성하는 방법**

1. 코드 편집기에 쿼리를 작성하세요.

1. 쿼리를 실행하려면 코드 편집기에서 **쿼리 실행**을 선택하세요.

`builder` 모드에서 쿼리를 생성하는 방법
+ 위 테이블의 정보를 사용하여 지표 네임스페이스, 지표 이름, 필터, 그룹 및 정렬 옵션을 찾아 선택하세요.
+ 이러한 각 옵션에 대해 가능한 옵션 목록 중에서 선택하세요.

Grafana는 선택 사항에 따라 SQL 쿼리를 자동으로 작성합니다.

 `code` 모드에서 쿼리를 생성하는 방법
+ 코드 편집기에 쿼리를 작성하세요.
+ 쿼리를 실행하려면 코드 편집기에서 **쿼리 실행**을 선택하세요.

코드 편집기에는 키워드, 집계, 네임스페이스, 지표, 레이블 및 레이블 값에 대한 제안을 제공하는 기본 제공 자동 완성 기능이 있습니다. 제안은 공백, 쉼표 또는 달러 기호를 입력할 때 표시됩니다. `CTRL+Space` 키보드 조합을 사용할 수도 있습니다.

코드 편집기에서 쿼리를 자동으로 완료할 수 있습니다. 그러나 코드 편집기에서 템플릿 변수를 사용하면 자동 완성이 방해를 받을 수 있습니다.

## CloudWatch Metrics Insights 예제
<a name="goldeneye-examples"></a>

**참고**  
CloudWatch Metrics Insights는 평가판이 공개되어 있습니다. 미리 보기는 모든 AWS 계정에 열려 있으며 액세스를 요청할 필요가 없습니다. 정식 출시를 발표하기 전에 기능이 추가되거나 변경될 수 있습니다.

이 섹션에는 쿼리 편집기에서 직접 복사 및 사용하거나 복사 및 수정할 수 있는 유용한 CloudWatch Metrics Insights 쿼리의 예제가 포함되어 있습니다. 이러한 예제 중 일부는 콘솔에서 이미 사용할 수 있으며 **지표(Metrics)** 보기의 **쿼리 추가(Add query)**를 선택하여 액세스할 수 있습니다.

### EC2 예제
<a name="goldeneye-EC2-examples"></a>

 인스턴스당 CPU 사용률 지표 보기

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
```

전체 플릿에서 평균 CPU 사용률 보기

```
SELECT AVG(CPUUtilization)
FROM SCHEMA("AWS/EC2", InstanceId)
```

 평균 CPU 사용률이 가장 높은 인스턴스 10개 보기 

```
SELECT MAX(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
LIMIT 10
```

CPU 사용률이 가장 높은 인스턴스 10개 보기(최댓값을 기준으로 내림차순 정렬)

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
ORDER BY MAX() DESC
LIMIT 10
```

이 경우 CloudWatch 에이전트가 애플리케이션당 CPU 사용률 지표를 수집합니다. 이 쿼리는 특정 애플리케이션 이름에 대해 해당 지표의 평균을 필터링합니다.

```
SELECT AVG(CPUUtilization)
FROM "AWS/CWAgent"
WHERE ApplicationName = 'eCommerce'
SELECT AVG(ConcurrentExecutions)
FROM "AWS/Lambda"
```

상위 10개 Lambda 함수의 평균 실행 시간 보기(최댓값을 기준으로 내림차순 정렬)

```
SELECT AVG(Duration)
FROM "AWS/Lambda"
GROUP BY FunctionName
ORDER BY MAX() DESC
LIMIT 10
```

Lambda 실행 시간의 평균, 최솟값 및 최댓값 보기

```
SELECT MAX(Duration)
FROM "AWS/Lambda"
```

### Application Load Balancer 예제
<a name="application-loadbalancer-examples"></a>

 **LoadBalancer** 및 **AvailabilityZone** 차원을 포함하는 지표 보기

```
SELECT SUM(RequestCount)
FROM SCHEMA("AWS/ApplicationELB", LoadBalancer, AvailabilityZone)
```

활성 동시 TCP 연결 수를 포함하는 지표 보기

```
SELECT AVG(ActiveConnectionCount)
FROM "AWS/ApplicationELB"
```

### Amazon EBS 예제
<a name="Amazon-elastic-block-store-examples"></a>

 볼륨당 상위 10개 평균 쓰기 바이트 보기(내림차순 정렬)

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
GROUP BY VolumeId
ORDER BY MAX() DESC
LIMIT 10
```

평균 Amazon EBS 볼륨 쓰기 시간 보기

```
SELECT AVG(VolumeTotalWriteTime)
FROM "AWS/EBS"
```

평균 Amazon EBS 볼륨 유휴 시간 보기

```
SELECT AVG(VolumeIdleTime)
FROM "AWS/EBS"
View average burst balance per volume
SELECT AVG(BurstBalance)
FROM "AWS/EBS"
GROUP BY VolumeId
View average read bytes across Amazon EBS volumes
SELECT AVG(VolumeReadBytes)
FROM "AWS/EBS"
```

Amazon EBS 볼륨에서 평균 쓰기 바이트 보기

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
```

### Amazon Simple Storage Service 예제
<a name="simple-storage-service-examples"></a>

 버킷 이름별 평균 지연 시간 그룹 보기

```
SELECT AVG(TotalRequestLatency)
FROM "AWS/S3"
GROUP BY BucketName
```

모든 Amazon S3 버킷에서 버킷당 평균 객체 수 보기

```
SELECT AVG(NumberOfObjects)
FROM "AWS/S3"
GROUP BY BucketName
```

### Amazon Simple Notification Service 예제
<a name="Amazon-simple-notificaation-service-examples"></a>

Amazon-simple-notificaation-service-examples 

```
SELECT AVG(NumberOfMessagesPublished)
FROM "AWS/SNS"
```

각 주제 이름에 대해 실패한 평균 메시지 수 보기

```
SELECT AVG(NumberOfNotificationsFailed)
FROM "AWS/SNS"
GROUP BY TopicName
```

### AWS API 사용 예제
<a name="AWS-API-usage-examples"></a>

계정의 호출 수를 기준으로 상위 20 AWS APIs 보기 

```
SELECT COUNT(CallCount)
FROM "AWS/Usage"
WHERE "Type" = 'API'
GROUP BY "Service", "Resource"
ORDER BY SUM() DESC
LIMIT 20
```

## CloudWatch Metrics Insights 제한
<a name="metrics-insights-limits"></a>

CloudWatch Metrics Insights에는 현재 다음과 같은 제한이 있습니다.
+ 가장 최근 3시간의 데이터만 쿼리할 수 있습니다.
+ 단일 쿼리는 10,000개 이하의 지표를 처리할 수 있습니다. 즉, `SELECT`, `FROM`, `WHERE` 절이 10,000개가 넘는 지표와 일치하면 발견된 해당 지표 중 처음 10,000개만 쿼리에 의해 처리됩니다.
+ 단일 쿼리는 500개 이하의 시계열을 반환할 수 있습니다. 즉, 쿼리에서 500개가 넘는 지표를 반환하는 경우 일부 지표만 쿼리 결과에 반환됩니다. `ORDER BY` 절을 사용하면 처리되는 모든 지표가 정렬되고 `ORDER BY` 절에 따라 내림차순 또는 오름차순으로 500개가 반환됩니다. `ORDER BY` 절을 포함하지 않는 경우 반환되는 500개의 일치하는 지표을 제어할 수 없습니다.
+ 각 `GetMetricData` 작업에는 쿼리가 하나만 있을 수 있지만 대시보드에는 각 쿼리가 포함된 위젯이 여러 개 있을 수 있습니다.