

# CloudWatch 検索式の例
<a name="search-expression-examples"></a>

次の例は、検索式の使用方法と構文を示しています。リージョン内のすべてのインスタンスで `CPUUtilization` を検索してから、バリエーションを見てみましょう。

この例では、リージョン内の各インスタンスの 1 行が表示されており、`CPUUtilization` 名前空間の `AWS/EC2` メトリクスを示します。

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

`InstanceId` を `InstanceType` に変更すると、リージョンで使用された各インスタンスタイプの 1 行を示すようにグラフが変更されます。各タイプのすべてのインスタンスのデータは、そのインスタンスタイプの 1 行に集約されます。

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

次の例では、`CPUUtilization` をインスタンスタイプ別に集計しており、文字列 `micro` を含む各インスタンスタイプの 1 行が表示されます。

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

この例は、前の例を絞り込んでおり、`InstanceType` は、t2.micro instance の完全一致検索に変更されます。

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

次の検索では、クエリの `{metric schema}` 部分が削除されるため、すべての名前空間の `CPUUtilization` メトリクスがグラフに表示されます。これにより、グラフには、さまざまなディメンションに沿って計算された、AWS の各サービスの `CPUUtilization` メトリクスの複数の行が含まれるため、多くの結果が返ることがあります。

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

これらの結果を絞り込むために、2 つの特定のメトリクス名前空間を指定できます。

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

各クエリに指定できるメトリクスキーマは 1 つのみであるため、前の例は、1 つの検索クエリで特定の複数の名前空間の検索を実行する唯一の方法です。ただし、構造をさらに追加するには、次の例のようにグラフで 2 つのクエリを使用できます。また、この例では、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` の Lambda メトリクスと、`ProjectA` または `ProjectB` を含む名前の関数の `Invocations` を返します。

```
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 の 2 つのアカウントから `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')
```