

# CloudWatch 검색 표현식 예
<a name="search-expression-examples"></a>

다음 예제는 더 많은 검색 표현식 사용과 구문을 보여줍니다. 리전의 모든 인스턴스에 대한 `CPUUtilization`을 검색한 후 변형을 살펴보겠습니다.

이 예제는 리전의 각 인스턴스에 대한 줄 하나를 표시합니다. 이 줄은 `AWS/EC2` 네임스페이스의 `CPUUtilization` 지표를 보여줍니다.

```
SEARCH(' {AWS/EC2,InstanceId} MetricName="CPUUtilization" ', 'Average')
```

`InstanceId`를 `InstanceType`으로 변경하면 리전에서 사용되는 각 인스턴스 유형마다 한 줄씩 표시되도록 그래프가 변경됩니다. 각 유형의 모든 인스턴스에 있는 데이터는 해당 인스턴스 유형에 대해 한 줄로 집계됩니다.

```
SEARCH(' {AWS/EC2,InstanceType} MetricName="CPUUtilization" ', 'Average')
```

다음 예제는 인스턴스 유형별로 `CPUUtilization`을 집계하고 `micro` 문자열이 포함된 각 인스턴스 유형에 대해 한 줄을 표시합니다.

```
SEARCH('{AWS/EC2,InstanceType} InstanceType=micro MetricName="CPUUtilization" ', 'Average')
```

이 예제는 이전 예제의 범위를 좁히며, `InstanceType`을 t2.micro 인스턴스에 대한 정확한 검색으로 변경합니다.

```
SEARCH('{AWS/EC2,InstanceType} InstanceType="t2.micro" MetricName="CPUUtilization" ', 'Average')
```

다음 검색은 쿼리의 `{metric schema}` 부분을 제거하므로 모든 네임스페이스의 `CPUUtilization` 지표가 그래프에 표시됩니다. 여러 측정기준으로 집계된 각 `CPUUtilization` 서비스의 AWS 지표에 대해 여러 줄이 그래프에 포함되어 있으므로 상당히 많은 결과가 반환될 수 있습니다.

```
SEARCH('MetricName="CPUUtilization" ', 'Average')
```

이러한 결과를 약간 좁히려면 두 개의 특정 지표 네임스페이스를 지정하면 됩니다.

```
SEARCH('MetricName="CPUUtilization" AND ("AWS/ECS" OR "AWS/ES") ', 'Average')
```

각 쿼리에서 지표 스키마를 하나만 지정할 수 있으므로, 위의 예제는 검색 쿼리 하나로 여러 개의 특정 네임스페이스를 검색하는 유일한 방법입니다. 그러나 더 많은 구조를 추가하기 위해 다음 예제와 같이 그래프에서 쿼리 두 개를 사용할 수 있습니다. 또한 이 예에서는 Amazon ECS에 대한 데이터를 집계하는 데 사용할 측정기준을 지정하여 더 많은 구조를 추가합니다.

```
SEARCH('{AWS/ECS ClusterName}, MetricName="CPUUtilization" ', 'Average')
SEARCH(' {AWS/EBS} MetricName="CPUUtilization" ', 'Average')
```

다음 예에서는 `ConsumedLCUs`라는 Elastic Load Balancing 지표를 반환하는 것은 물론 `flow` 토큰이 포함된 모든 Elastic Load Balancing 지표 또는 측정기준을 반환합니다.

```
SEARCH('{AWS/NetworkELB, LoadBalancer} "ConsumedLCUs" OR flow ', 'Maximum')
```

다음 예제는 중첩 그룹화를 사용합니다. 모든 함수의 `Errors` 및 이름에 `ProjectA` 또는 `ProjectB` 문자열이 포함된 함수의 `Invocations`에 대한 Lambda 지표를 반환합니다.

```
SEARCH('{AWS/Lambda,FunctionName} MetricName="Errors" OR (MetricName="Invocations" AND (ProjectA OR ProjectB)) ', 'Average')
```

다음 예제는 AWS 서비스에서 생성된 지표를 제외한 모든 사용자 지정 지표를 표시합니다.

```
SEARCH('NOT Namespace=AWS ', 'Average')
```

다음 예제는 이름의 일부로 `Errors` 문자열을 포함하는 지표 이름, 네임스페이스, 측정기준 이름 및 측정기준 값이 있는 지표를 표시합니다.

```
SEARCH('Errors', 'Average')
```

다음 예제는 정확한 일치로 검색 범위를 좁힙니다. 예를 들어, 이 검색은 `Errors` 지표 이름을 찾지만 이름이 `ConnectionErrors` 또는 `errors`인 지표를 찾지 않습니다.

```
SEARCH(' "Errors" ', 'Average')
```

다음 예제는 검색어의 지표 스키마 부분에 공백이나 특수 문자가 포함된 이름을 지정하는 방법을 보여줍니다.

```
SEARCH('{"Custom-Namespace", "Dimension Name With Spaces"}, ErrorCount ', 'Maximum')
```

## CloudWatch 크로스 계정 관측성 검색 표현식 예제
<a name="search-expression-examples"></a>

**CloudWatch 크로스 계정 관측성 예제**

CloudWatch 크로스 계정 관측성에서 모니터링 계정으로 설정된 계정에 로그인한 경우 **SEARCH** 함수를 사용하여 지정된 소스 계정에서 지표를 반환할 수 있습니다. 자세한 내용은 [CloudWatch 크로스 계정 관측성](CloudWatch-Unified-Cross-Account.md) 섹션을 참조하세요.

다음 예제에서는 계정 ID가 111122223333인 계정에서 모든 Lambda 지표를 검색합니다.

```
SEARCH(' AWS/Lambda :aws.AccountId = 111122223333 ', 'Average')
```

다음 예제에서는 111122223333 및 777788889999의 두 계정에서 모든 `AWS/EC2` 지표를 검색합니다.

```
SEARCH(' AWS/EC2 :aws.AccountId = (111122223333 OR 777788889999) ', 'Average')
```

다음 예에서는 소스 계정 111122223333과 모니터링 계정 자체에서 모든 `AWS/EC2` 지표를 검색합니다.

```
SEARCH(' AWS/EC2 :aws.AccountId = (111122223333 OR 'LOCAL') ', 'Average')
```

다음 예에서는 `InstanceId` 측정기준이 있는 계정 `444455556666`에서 `MetaDataToken` 지표 중 `SUM`을 검색합니다.

```
SEARCH('{AWS/EC2,InstanceId} :aws.AccountId=444455556666 MetricName=\"MetadataNoToken\"','Sum')
```