

# 「Amazon ECS Container Insights メトリクス」
<a name="Container-Insights-metrics-ECS"></a>

Container Insights メトリクスは、追加のネットワーク、ストレージ、エフェメラルストレージメトリクスを提供します。これらのメトリクスは、標準の Amazon ECS メトリクスよりも多くの情報を提供します。Container Insights は CloudWatch Logs と統合されます。メトリクスの変更をログエントリと関連付けて、トラブルシューティングを容易にできます。Container Insights は、すべてのタスクのデータを平均化することで、クラスター、サービス、およびデーモン全体の統計も表示します。これにより、サービスとデーモンの状態をより詳細に把握でき、環境モニタリングとキャパシティプランニングの両方に役立ちます。

**ユースケース**
+ **問題の特定とトラブルシューティング** – タスク状態遷移パターンを分析して失敗したデプロイを追跡し、障害ポイントを迅速に特定できるようにします。タスクの起動シーケンスと初期化動作を包括的に調べて設定問題を診断します
+ **クラスターとサービスレベルのヘルス評価** – クラスター全体の平均タスクパフォーマンスを表示します。このアプローチは外れ値をモデレートして、クラスターとサービスのヘルスをより安定的に表示します。これらのインサイトは、極端な値が誤解を招く可能性がある一般的なサービスモニタリングに使用します 
+ **サービスの可用性の問題** – 実行中のタスク数メトリクスをモニタリングして、デプロイの失敗を検出します。サービスイベントログをパフォーマンスメトリクスと関連付けて、インフラストラクチャへの影響を理解します。タスクの再起動パターンを追跡して、不安定なサービスやインフラストラクチャの問題を特定します
+ **平均負荷のキャパシティプランニング** – 一般的なタスク動作パターンに基づいてリソース要件を決定し、効果的な長期計画をサポートする一貫したメトリクスを提供し、キャパシティの決定に対する短期間のスパイクの影響を軽減します
+ **追加のメトリクスを提供** – 提供されたメトリクスでは利用できない追加のネットワーク、ストレージ、エフェメラルストレージメトリクスを収集します

Amazon ECS メトリクスの詳細については、「[Amazon ECS サービス使用率メトリクスのユースケース](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service_utilization-metrics-explanation.html)」を参照してください。また、オブザーバビリティが強化された Container Insights の詳細については、「[Amazon ECS 用にオブザーバビリティメトリクスが強化された Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-enhanced-observability-metrics-ECS.html)」を参照してください。

**注記**  
Amazon ECS マネージドデーモンメトリクスは、サービスメトリクスと同じ `ECS/ContainerInsights` 名前空間および同じ `ServiceName` ディメンションを使用します。デーモンメトリクスでは、`ServiceName` ディメンション値は形式 `daemon:{{daemon-name}}` を使用します。例えば、`my-daemon` という名前のデーモンには、`daemon:my-daemon` の `ServiceName` ディメンション値があります。`ServiceName` ディメンションを含む以下の表のすべてのメトリクスは、マネージドデーモンにも適用されます。

以下の表は、Container Insights で Amazon ECS に収集されるメトリクスとディメンションを示しています。これらのメトリクスは `ECS/ContainerInsights` 名前空間にあります。詳細については、「[メトリクス](cloudwatch_concepts.md#Metric)」を参照してください。

コンソールに Container Insights メトリクスが表示されない場合は、Container Insights のセットアップが完了していることを確認します。メトリクスは、Container Insights が完全にセットアップされるまで表示されません。詳細については、「[Container Insights の設定](deploy-container-insights.md)」を参照してください。

「[Amazon ECS での Container Insights のセットアップ](deploy-container-insights-ECS-cluster.md)」の手順を完了すると、次のメトリクスが利用できるようになります。


| メトリクス名 | ディメンション | 説明 | 
| --- | --- | --- | 
| `ContainerInstanceCount` | `ClusterName` | クラスターに登録されている Amazon ECS エージェントを実行している EC2 インスタンスの数。<br />このメトリクスは、クラスターで Amazon ECS タスクが実行されているコンテナインスタンスに対してのみ収集されます。Amazon ECS タスクがない空のコンテナインスタンスについては収集されません。<br />単位: 数 | 
| `CpuUtilized` | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションセットによって指定されるリソースのタスクにより使用されている CPU ユニット数。<br />マネージドデーモンにも適用されます。<br />単位: なし | 
| `CpuReserved` | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションセットによって指定されるリソースのタスクにより予約されている CPU ユニット数。<br />このメトリクスは、タスクまたはすべてのコンテナレベルなど、タスク定義で定義された CPU 予約に基づいて収集されます。タスク定義で指定されていない場合は、インスタンスの CPU 予約が使用されます。<br />マネージドデーモンにも適用されます。<br />単位: なし | 
| `DeploymentCount` | `ServiceName`, `ClusterName` | Amazon ECS サービスでのデプロイの数。<br />単位: 数 | 
| `DesiredTaskCount` | `ServiceName`, `ClusterName` | Amazon ECS サービスに必要なタスクの数。<br />単位: 数 | 
| `EBSFilesystemSize` | `VolumeName`, `TaskDefinitionFamily`, `ClusterName`<br />`TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName` | 使用しているディメンションで指定されたリソースに割り当てられる Amazon EBS ファイルシステムストレージの合計容量 (GB)。<br />このメトリクスは、プラットフォームバージョン `1.4.0` を使用する Fargate で実行されている Amazon ECS インフラストラクチャ、またはコンテナエージェントバージョン `1.79.0` 以降を使用する Amazon EC2 インスタンスで実行されるタスクでのみ使用できます。<br />マネージドデーモンにも適用されます。<br />単位: ギガバイト (GB) | 
| `EBSFilesystemUtilized` | `VolumeName`, `TaskDefinitionFamily`, `ClusterName`<br />`TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName` | 使用しているディメンションで指定されたリソースに使用される Amazon EBS ファイルシステムストレージの合計容量 (GB)。<br />このメトリクスは、プラットフォームバージョン `1.4.0` を使用する Fargate で実行されている Amazon ECS インフラストラクチャ、またはコンテナエージェントバージョン `1.79.0` 以降を使用する Amazon EC2 インスタンスで実行されるタスクでのみ使用できます。<br />Fargate で実行されるタスクの場合、Fargate は Fargate でのみ使用されるディスク上のスペースを予約します。Fargate が使用するスペースにコストは発生しませんが、`df` のようなツールで使用されるこの追加ストレージが表示されます。<br />マネージドデーモンにも適用されます。<br />単位: ギガバイト (GB) | 
|  EphemeralStorageReserved [1](#ci-metrics-ecs-storage-fargate-note)  | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションによって指定されたリソースのエフェメラルストレージから予約されたバイト数。エフェメラルストレージは、コンテナルートファイルシステム、およびコンテナイメージとタスク定義で定義されているバインドマウントホストボリュームに使用されます。エフェメラルストレージの容量は、実行中のタスクでは変更できません。<br />このメトリクスは、Fargate Linux プラットフォームのバージョン 1.4.0 以降で実行されるタスクでのみ使用できます。<br />マネージドデーモンにも適用されます。<br />単位: ギガバイト (GB) | 
|  EphemeralStorageUtilized [1](#ci-metrics-ecs-storage-fargate-note)  | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションで指定されたリソースのエフェメラルストレージから使用されたバイト数。エフェメラルストレージは、コンテナルートファイルシステム、およびコンテナイメージとタスク定義で定義されているバインドマウントホストボリュームに使用されます。エフェメラルストレージの容量は、実行中のタスクでは変更できません。<br />このメトリクスは、Fargate Linux プラットフォームのバージョン 1.4.0 以降で実行されるタスクでのみ使用できます。<br />マネージドデーモンにも適用されます。<br />単位: ギガバイト (GB) | 
| `InstanceOSFilesystemUtilization` | `CapacityProviderName`, `ClusterName`, `ContainerInstanceId`, `EC2InstanceId`<br />`ClusterName` | OS ボリューム用に使用された合計ディスクスペースの割合。 | 
| `InstanceDataFilesystemUtilization` | `CapacityProviderName`, `ClusterName`, `ContainerInstanceId`, `EC2InstanceId`<br />`ClusterName` | データボリューム用に使用された合計ディスクスペースの割合。 | 
| `MemoryUtilized` | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションセットによって指定されるリソースのタスクにより使用されているメモリ。 アプリケーションに Java ZGC ガベージコレクタを使用している場合、このメトリクスが不正確である可能性があります。 <br />`MemoryUtilized` と `MemoryReserved` は「メガバイト」とマークされますが、実際の単位は MiB (メビバイト) です。 <br />マネージドデーモンにも適用されます。<br />単位: メガバイト | 
| `MemoryReserved` | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションセットによって指定されるリソースのタスクにより予約されているメモリ。このメトリクスは、タスクまたはすべてのコンテナレベルなど、タスク定義で定義されたメモリ予約に基づいて収集されます。タスク定義で指定されていない場合は、インスタンスのメモリ予約が使用されます。<br />マネージドデーモンにも適用されます。<br />単位: メガバイト `MemoryUtilized` と `MemoryReserved` は「メガバイト」とマークされますが、実際の単位は MiB (メビバイト) です。  | 
| `NetworkRxBytes` | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションによって指定されたリソースにより受信されるバイト数。このメトリクスは、Docker ランタイムから取得されます。<br />このメトリクスは、`awsvpc` または `bridge` ネットワークモードを使用するタスクのコンテナでのみ使用できます。<br />マネージドデーモンにも適用されます。<br />単位: バイト/秒 | 
| `NetworkTxBytes` | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションによって指定されたリソースにより送信されるバイト数。このメトリクスは、Docker ランタイムから取得されます。<br />このメトリクスは、`awsvpc` または `bridge` ネットワークモードを使用するタスクのコンテナでのみ使用できます。<br />マネージドデーモンにも適用されます。<br />単位: バイト/秒 | 
| `PendingTaskCount` | `ServiceName`, `ClusterName` | 現在、`PENDING` 状態にあるタスクの数。<br />単位: 数 | 
| `RunningTaskCount` | `ServiceName`, `ClusterName` | 現在、`RUNNING` 状態にあるタスクの数。<br />単位: 数 | 
| `RestartCount` | `ClusterName`<br />`ClusterName`, `ServiceName`<br />`ClusterName`, `TaskDefinitionFamily` | Amazon ECS タスク内のコンテナが再起動された回数。<br />このメトリクスは、再起動ポリシーが有効になっているコンテナのみを対象として収集されます。<br />マネージドデーモンにも適用されます。<br />単位: 数 | 
| `ServiceCount` | `ClusterName` | クラスター内のサービスの数。<br />単位: 数 | 
| `StorageReadBytes` | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションによって指定されたリソース内のインスタンスのストレージから読み取られたバイト数。これにはストレージデバイスの読み取りバイト数は含まれません。このメトリクスは、Docker ランタイムから取得されます。<br />マネージドデーモンにも適用されます。<br />単位: バイト | 
| `StorageWriteBytes` | `TaskDefinitionFamily`, `ClusterName`<br />`ServiceName`, `ClusterName`<br />`ClusterName` | 使用しているディメンションによって指定されたリソースのストレージに書き込まれたバイト数。このメトリクスは、Docker ランタイムから取得されます。<br />マネージドデーモンにも適用されます。<br />単位: バイト | 
| `TaskCount` | `ClusterName` | クラスターで実行されているタスクの数。<br />単位: 数 | 
| `TaskSetCount` | `ServiceName`, `ClusterName` | サービス内のタスクセットの数。<br />単位: 数 | 

**注記**  
`EphemeralStorageReserved` および `EphemeralStorageUtilized` メトリクスは、Fargate Linux プラットフォームのバージョン 1.4.0 以降で実行されるタスクでの使用できます。  
Fargate はディスク上のスペースを予約します。スペースは Fargate によってのみ使用されます。これには課金されることはありません。これらのメトリクスには表示されません。ただし、この追加ストレージは、`df` などの他のツールでも確認できます。

「[Amazon ECS で EC2 インスタンスレベルのメトリクスを収集するための CloudWatch エージェントのデプロイ](deploy-container-insights-ECS-instancelevel.md)」のステップを完了すると、以下のメトリクスが使用できるようになります


| メトリクス名 | ディメンション | 説明 | 
| --- | --- | --- | 
| `instance_cpu_limit` | `ClusterName` | このクラスター内の単一の EC2 インスタンスに割り当てることができる CPU ユニットの最大数。<br />単位: なし | 
| `instance_cpu_reserved_capacity` | `ClusterName`<br />`InstanceId`, `ContainerInstanceId`, `ClusterName` | クラスター内の単一の EC2 インスタンスで現在予約されている CPU の割合。<br />単位: パーセント | 
| `instance_cpu_usage_total` | `ClusterName` | クラスター内の単一 EC2 インスタンスで使用されている CPU ユニットの数。<br />単位: なし | 
| `instance_cpu_utilization` | `ClusterName`<br />`InstanceId`, `ContainerInstanceId`, `ClusterName` | クラスター内の単一の EC2 インスタンスで使用されている CPU ユニットの合計割合。<br />単位: パーセント | 
| `instance_filesystem_utilization` | `ClusterName`<br />`InstanceId`, `ContainerInstanceId`, `ClusterName` | クラスター内の単一の EC2 インスタンスで使用されているファイルシステム容量の合計割合。<br />単位: パーセント | 
| `instance_memory_limit` | `ClusterName` | このクラスター内の単一の EC2 インスタンスに割り当てることができるメモリの最大量（バイト単位）。<br />単位: バイト | 
| `instance_memory_reserved_capacity` | `ClusterName`<br />`InstanceId`, `ContainerInstanceId`, `ClusterName` | クラスター内の単一の EC2 インスタンスで現在予約されているメモリの割合。<br />単位: パーセント | 
| `instance_memory_utilization` | `ClusterName`<br />`InstanceId`, `ContainerInstanceId`, `ClusterName` | クラスター内の単一の EC2 インスタンスで使用されているメモリの合計割合。 アプリケーションに Java ZGC ガベージコレクタを使用している場合、このメトリクスが不正確である可能性があります。 <br />単位: パーセント | 
| `instance_memory_working_set` | `ClusterName` | クラスター内の単一の EC2 インスタンスで使用されているメモリの量（バイト単位）。 アプリケーションに Java ZGC ガベージコレクタを使用している場合、このメトリクスが不正確である可能性があります。 <br />単位: バイト | 
| `instance_network_total_bytes` | `ClusterName` | クラスター内の単一の EC2 インスタンスでネットワーク上で送受信された 1 秒あたりの合計バイト数。<br />単位: バイト/秒 | 
| `instance_number_of_running_tasks` | `ClusterName` | クラスター内の単一の EC2 インスタンスで実行中のタスクの数。<br />単位: 数 | 