

# Metrics Insights のサンプルクエリ
<a name="cloudwatch-metrics-insights-queryexamples"></a>

このセクションでは、コピーして直接使用することも、クエリエディタで編集して使用することもできる、有用な CloudWatch Metrics Insights クエリの例を紹介します。これらの例の内のいくつかは、コンソールで既に利用可能な状態であり、**[Metrics]** (メトリクス) ビューで **[Add query]** (クエリを追加) をクリックしてアクセスすることができます。

## Application Load Balancer での例
<a name="cloudwatch-metrics-insights-queryexamples-applicationloadbalancer"></a>

**すべてのロードバランサーでのリクエストの合計数**

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

**最もアクティブな上位 10 個のロードバランサー**

```
SELECT MAX(ActiveConnectionCount) 
FROM SCHEMA("AWS/ApplicationELB", LoadBalancer) 
GROUP BY LoadBalancer 
ORDER BY SUM() DESC 
LIMIT 10
```

## AWS API の使用状況に関する例
<a name="cloudwatch-metrics-insights-queryexamples-APIusage"></a>

**アカウント内の呼び出し数で上位 20 の AWS API**

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

**呼び出しごとにソートされた CloudWatch API**

```
SELECT COUNT(CallCount) 
FROM SCHEMA("AWS/Usage", Class, Resource, Service, Type) 
WHERE Type = 'API' AND Service = 'CloudWatch' 
GROUP BY Resource 
ORDER BY COUNT() DESC
```

## DynamoDB での例
<a name="cloudwatch-metrics-insights-queryexamples-DynamoDB"></a>

**実行された読み取り数で上位 10 のテーブル**

```
SELECT SUM(ProvisionedWriteCapacityUnits)
FROM SCHEMA("AWS/DynamoDB", TableName) 
GROUP BY TableName
ORDER BY MAX() DESC LIMIT 10
```

**返されたバイト数で上位 10 のテーブル**

```
SELECT SUM(ReturnedBytes)
FROM SCHEMA("AWS/DynamoDB", TableName) 
GROUP BY TableName
ORDER BY MAX() DESC LIMIT 10
```

**ユーザーエラー数で上位 10 のテーブル**

```
SELECT SUM(UserErrors)
FROM SCHEMA("AWS/DynamoDB", TableName) 
GROUP BY TableName
ORDER BY MAX() DESC LIMIT 10
```

## Amazon Elastic Block Store での例
<a name="cloudwatch-metrics-insights-queryexamples-EBS"></a>

**書き込まれたバイト数で上位 10 のAmazon EBSボリューム**

```
SELECT SUM(VolumeWriteBytes) 
FROM SCHEMA("AWS/EBS", VolumeId) 
GROUP BY VolumeId 
ORDER BY SUM() DESC 
LIMIT 10
```

**Amazon EBS ボリュームでの平均書き込み時間**

```
SELECT AVG(VolumeTotalWriteTime) 
FROM SCHEMA("AWS/EBS", VolumeId)
```

## Amazon EC2 での例
<a name="cloudwatch-metrics-insights-queryexamples-EC2"></a>

**最も高い順にソートされた EC2 インスタンスの CPU 使用量**

```
SELECT AVG(CPUUtilization) 
  FROM SCHEMA("AWS/EC2", InstanceId) 
  GROUP BY InstanceId 
  ORDER BY AVG() DESC
```

**フリート全体での平均 CPU 使用量**

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

**CPU の最高使用量で上位 10 のインスタンス**

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

**このケースでは、CloudWatch エージェントはアプリケーションごとに `CPUUtilization` メトリクスを収集しています。このクエリは、特定のアプリケーション名について、このメトリクスの平均によるフィルタリングを行います。**

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

## Amazon Elastic Container Service での例
<a name="cloudwatch-metrics-insights-queryexamples-ECS"></a>

**すべての ECS クラスタでの平均 CPU 使用量**

```
SELECT AVG(CPUUtilization) 
FROM SCHEMA("AWS/ECS", ClusterName)
```

**メモリ使用量で上位 10 のクラスタ**

```
SELECT AVG(MemoryUtilization) 
FROM SCHEMA("AWS/ECS", ClusterName) 
GROUP BY ClusterName 
ORDER BY AVG() DESC
LIMIT 10
```

**CPU 使用量で上位 10 のサービス**

```
SELECT AVG(CPUUtilization) 
FROM SCHEMA("AWS/ECS", ClusterName, ServiceName) 
GROUP BY ClusterName, ServiceName 
ORDER BY AVG() DESC 
LIMIT 10
```

**実行中のタスク (Container Insights) 数で上位 10 のサービス**

```
SELECT AVG(RunningTaskCount) 
FROM SCHEMA("ECS/ContainerInsights", ClusterName, ServiceName) 
GROUP BY ClusterName, ServiceName 
ORDER BY AVG() DESC 
LIMIT 10
```

## Amazon Elastic Kubernetes Service Container Insights での例
<a name="cloudwatch-metrics-insights-queryexamples-EKSCI"></a>

**すべての EKS クラスタでの平均 CPU 使用量**

```
SELECT AVG(pod_cpu_utilization) 
FROM SCHEMA("ContainerInsights", ClusterName)
```

**ノードの CPU 使用量で上位 10 のクラスタ**

```
SELECT AVG(node_cpu_utilization) 
FROM SCHEMA("ContainerInsights", ClusterName) 
GROUP BY ClusterName
ORDER BY AVG() DESC LIMIT 10
```

**ポッドのメモリ使用量で上位 10 のクラスター**

```
SELECT AVG(pop_memory_utilization) 
FROM SCHEMA("ContainerInsights", ClusterName) 
GROUP BY ClusterName
ORDER BY AVG() DESC LIMIT 10
```

**CPU 使用量で上位 10 のノード**

```
SELECT AVG(node_cpu_utilization) 
FROM SCHEMA("ContainerInsights", ClusterName, NodeName) 
GROUP BY ClusterName, NodeName 
ORDER BY AVG() DESC LIMIT 10
```

**メモリ使用量で上位 10 のポッド**

```
SELECT AVG(pod_memory_utilization) 
FROM SCHEMA("ContainerInsights", ClusterName, PodName) 
GROUP BY ClusterName, PodName 
ORDER BY AVG() DESC LIMIT 10
```

## EventBridge での例
<a name="cloudwatch-metrics-insights-queryexamples-EventBridge"></a>

**呼び出し数で上位10 のルール**

```
SELECT SUM(Invocations)
FROM SCHEMA("AWS/Events", RuleName) 
GROUP BY RuleName
ORDER BY MAX() DESC LIMIT 10
```

**失敗した呼び出し数で上位 10 のルール**

```
SELECT SUM(FailedInvocations)
FROM SCHEMA("AWS/Events", RuleName) 
GROUP BY RuleName
ORDER BY MAX() DESC LIMIT 10
```

**一致したルール数で上位 10 のルール**

```
SELECT SUM(MatchedEvents)
FROM SCHEMA("AWS/Events", RuleName) 
GROUP BY RuleName
ORDER BY MAX() DESC LIMIT 10
```

## Kinesis での例
<a name="cloudwatch-metrics-insights-queryexamples-Kinesis"></a>

**書き込まれたバイト数で上位 10 のストリーム**

```
SELECT SUM("PutRecords.Bytes") 
FROM SCHEMA("AWS/Kinesis", StreamName) 
GROUP BY StreamName
ORDER BY SUM() DESC LIMIT 10
```

**ストリーム内の最も早いアイテム数で上位 10 のストリーム**

```
SELECT MAX("GetRecords.IteratorAgeMilliseconds") 
FROM SCHEMA("AWS/Kinesis", StreamName) 
GROUP BY StreamName
ORDER BY MAX() DESC LIMIT 10
```

## Lambda での例
<a name="cloudwatch-metrics-insights-queryexamples-Lambda"></a>

**呼び出し数で順序付けられた Lambda 関数**

```
SELECT SUM(Invocations) 
FROM SCHEMA("AWS/Lambda", FunctionName) 
GROUP BY FunctionName 
ORDER BY SUM() DESC
```

**最長実行時間で上位 10 の Lambda 関数**

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

**エラー発生数で上位 10 のLambda 関数**

```
SELECT SUM(Errors) 
FROM SCHEMA("AWS/Lambda", FunctionName) 
GROUP BY FunctionName 
ORDER BY SUM() DESC 
LIMIT 10
```

## CloudWatch Logs での例
<a name="cloudwatch-metrics-insights-queryexamples-CloudWatchLogs"></a>

**受信イベント数で上位 10 のロググループ**

```
SELECT SUM(IncomingLogEvents)
FROM SCHEMA("AWS/Logs", LogGroupName) 
GROUP BY LogGroupName
ORDER BY SUM() DESC LIMIT 10
```

**書き込まれたバイト数で上位 10 のロググループ**

```
SELECT SUM(IncomingBytes)
FROM SCHEMA("AWS/Logs", LogGroupName) 
GROUP BY LogGroupName
ORDER BY SUM() DESC LIMIT 10
```

## Amazon RDS での例
<a name="cloudwatch-metrics-insights-queryexamples-RDS"></a>

**CPU の最大使用量で上位 10 の Amazon RDS インスタンス**

```
SELECT MAX(CPUUtilization)
FROM SCHEMA("AWS/RDS", DBInstanceIdentifier) 
GROUP BY DBInstanceIdentifier
ORDER BY MAX() DESC 
LIMIT 10
```

**書き込み量で上位 10 の Amazon RDS クラスター**

```
SELECT SUM(WriteIOPS)
FROM SCHEMA("AWS/RDS", DBClusterIdentifier) 
GROUP BY DBClusterIdentifier
ORDER BY MAX() DESC 
LIMIT 10
```

## Amazon Simple Storage Service での例
<a name="cloudwatch-metrics-insights-queryexamples-S3"></a>

**バケット別の平均レイテンシー**

```
SELECT AVG(TotalRequestLatency) 
FROM SCHEMA("AWS/S3", BucketName, FilterId) 
WHERE FilterId = 'EntireBucket' 
GROUP BY BucketName 
ORDER BY AVG() DESC
```

**ダウンロードされたバイト数で上位 10 のバケット**

```
SELECT SUM(BytesDownloaded) 
FROM SCHEMA("AWS/S3", BucketName, FilterId) 
WHERE FilterId = 'EntireBucket'
GROUP BY BucketName 
ORDER BY SUM() DESC 
LIMIT 10
```

## Amazon Simple Notification Service での例
<a name="cloudwatch-metrics-insights-queryexamples-SNS"></a>

**SNS トピックによって発行されたメッセージの総数**

```
SELECT SUM(NumberOfMessagesPublished) 
FROM SCHEMA("AWS/SNS", TopicName)
```

**発行されたメッセージ数で上位 10 のトピック**

```
SELECT SUM(NumberOfMessagesPublished) 
FROM SCHEMA("AWS/SNS", TopicName) 
GROUP BY TopicName 
ORDER BY SUM() DESC 
LIMIT 10
```

**メッセージ配信の失敗数で上位 10 のトピック**

```
SELECT SUM(NumberOfNotificationsFailed) 
FROM SCHEMA("AWS/SNS", TopicName)
GROUP BY TopicName 
ORDER BY SUM() DESC 
LIMIT 10
```

## Amazon SQS での例
<a name="cloudwatch-metrics-insights-queryexamples-SQS"></a>

**表示可能なメッセージ数で上位 10 のキュー**

```
SELECT AVG(ApproximateNumberOfMessagesVisible)
FROM SCHEMA("AWS/SQS", QueueName) 
GROUP BY QueueName
ORDER BY AVG() DESC 
LIMIT 10
```

**最もアクティブな上位 10 のキュー**

```
SELECT SUM(NumberOfMessagesSent)
FROM SCHEMA("AWS/SQS", QueueName) 
GROUP BY QueueName
ORDER BY SUM() DESC 
LIMIT 10
```

**最も初期のメッセージからの経過時間で上位 10 のキュー**

```
SELECT AVG(ApproximateAgeOfOldestMessage)
FROM SCHEMA("AWS/SQS", QueueName) 
GROUP BY QueueName
ORDER BY AVG() DESC 
LIMIT 10
```