「Amazon ECS Container Insights メトリクス」 - Amazon CloudWatch

「Amazon ECS Container Insights メトリクス」

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

ユースケース

  • 問題の特定とトラブルシューティング – タスク状態遷移パターンを分析して失敗したデプロイを追跡し、障害ポイントを迅速に特定できるようにします。タスクの起動シーケンスと初期化動作を包括的に調べて設定問題を診断します

  • クラスターとサービスレベルのヘルス評価 – クラスター全体の平均タスクパフォーマンスを表示します。このアプローチは外れ値をモデレートして、クラスターとサービスのヘルスをより安定的に表示します。これらのインサイトは、極端な値が誤解を招く可能性がある一般的なサービスモニタリングに使用します

  • サービスの可用性の問題 – 実行中のタスク数メトリクスをモニタリングして、デプロイの失敗を検出します。サービスイベントログをパフォーマンスメトリクスと関連付けて、インフラストラクチャへの影響を理解します。タスクの再起動パターンを追跡して、不安定なサービスやインフラストラクチャの問題を特定します

  • 平均負荷のキャパシティプランニング – 一般的なタスク動作パターンに基づいてリソース要件を決定し、効果的な長期計画をサポートする一貫したメトリクスを提供し、キャパシティの決定に対する短期間のスパイクの影響を軽減します

  • 追加のメトリクスを提供 – 提供されたメトリクスでは利用できない追加のネットワーク、ストレージ、エフェメラルストレージメトリクスを収集します

Amazon ECS メトリクスの詳細については、「Amazon ECS サービス使用率メトリクスのユースケース」を参照してください。また、オブザーバビリティが強化された Container Insights の詳細については、「Amazon ECS 用にオブザーバビリティメトリクスが強化された Container Insights」を参照してください。

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

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

Amazon ECS での Container Insights のセットアップ」の手順を完了すると、次のメトリクスが利用できるようになります。

メトリクス名 ディメンション 説明

ContainerInstanceCount

ClusterName

クラスターに登録されている Amazon ECS エージェントを実行している EC2 インスタンスの数。

このメトリクスは、クラスターで Amazon ECS タスクが実行されているコンテナインスタンスに対してのみ収集されます。Amazon ECS タスクがない空のコンテナインスタンスについては収集されません。

単位: 数

CpuUtilized

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションセットによって指定されるリソースのタスクにより使用されている CPU ユニット数。

単位: なし

CpuReserved

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションセットによって指定されるリソースのタスクにより予約されている CPU ユニット数。

このメトリクスは、タスクまたはすべてのコンテナレベルなど、タスク定義で定義された CPU 予約に基づいて収集されます。タスク定義で指定されていない場合は、インスタンスの CPU 予約が使用されます。

単位: なし

DeploymentCount

ServiceName, ClusterName

Amazon ECS サービスでのデプロイの数。

単位: 数

DesiredTaskCount

ServiceName, ClusterName

Amazon ECS サービスに必要なタスクの数。

単位: 数

EBSFilesystemSize

VolumeName, TaskDefinitionFamily, ClusterName

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

使用しているディメンションで指定されたリソースに割り当てられる Amazon EBS ファイルシステムストレージの合計容量 (GB)。

このメトリクスは、プラットフォームバージョン 1.4.0 を使用する Fargate で実行されている Amazon ECS インフラストラクチャ、またはコンテナエージェントバージョン 1.79.0 以降を使用する Amazon EC2 インスタンスで実行されるタスクでのみ使用できます。

単位: ギガバイト (GB)

EBSFilesystemUtilized

VolumeName, TaskDefinitionFamily, ClusterName

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

使用しているディメンションで指定されたリソースに使用される Amazon EBS ファイルシステムストレージの合計容量 (GB)。

このメトリクスは、プラットフォームバージョン 1.4.0 を使用する Fargate で実行されている Amazon ECS インフラストラクチャ、またはコンテナエージェントバージョン 1.79.0 以降を使用する Amazon EC2 インスタンスで実行されるタスクでのみ使用できます。

Fargate で実行されるタスクの場合、Fargate は Fargate でのみ使用されるディスク上のスペースを予約します。Fargate が使用するスペースにコストは発生しませんが、df のようなツールで使用されるこの追加ストレージが表示されます。

単位: ギガバイト (GB)

EphemeralStorageReserved 1

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションによって指定されたリソースのエフェメラルストレージから予約されたバイト数。エフェメラルストレージは、コンテナルートファイルシステム、およびコンテナイメージとタスク定義で定義されているバインドマウントホストボリュームに使用されます。エフェメラルストレージの容量は、実行中のタスクでは変更できません。

このメトリクスは、Fargate Linux プラットフォームのバージョン 1.4.0 以降で実行されるタスクでのみ使用できます。

単位: ギガバイト (GB)

EphemeralStorageUtilized 1

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションで指定されたリソースのエフェメラルストレージから使用されたバイト数。エフェメラルストレージは、コンテナルートファイルシステム、およびコンテナイメージとタスク定義で定義されているバインドマウントホストボリュームに使用されます。エフェメラルストレージの容量は、実行中のタスクでは変更できません。

このメトリクスは、Fargate Linux プラットフォームのバージョン 1.4.0 以降で実行されるタスクでのみ使用できます。

単位: ギガバイト (GB)

MemoryUtilized

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションセットによって指定されるリソースのタスクにより使用されているメモリ。

注記

アプリケーションに Java ZGC ガベージコレクタを使用している場合、このメトリクスが不正確である可能性があります。

MemoryUtilizedMemoryReserved は「メガバイト」とマークされますが、実際の単位は MiB (メビバイト) です。

単位: メガバイト

MemoryReserved

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションセットによって指定されるリソースのタスクにより予約されているメモリ。このメトリクスは、タスクまたはすべてのコンテナレベルなど、タスク定義で定義されたメモリ予約に基づいて収集されます。タスク定義で指定されていない場合は、インスタンスのメモリ予約が使用されます。

単位: メガバイト

注記

MemoryUtilizedMemoryReserved は「メガバイト」とマークされますが、実際の単位は MiB (メビバイト) です。

NetworkRxBytes

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションによって指定されたリソースにより受信されるバイト数。このメトリクスは、Docker ランタイムから取得されます。

このメトリクスは、awsvpc または bridge ネットワークモードを使用するタスクのコンテナでのみ使用できます。

単位: バイト/秒

NetworkTxBytes

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションによって指定されたリソースにより送信されるバイト数。このメトリクスは、Docker ランタイムから取得されます。

このメトリクスは、awsvpc または bridge ネットワークモードを使用するタスクのコンテナでのみ使用できます。

単位: バイト/秒

PendingTaskCount

ServiceName, ClusterName

現在、PENDING 状態にあるタスクの数。

単位: 数

RunningTaskCount

ServiceName, ClusterName

現在、RUNNING 状態にあるタスクの数。

単位: 数

RestartCount

ClusterName

ClusterName, ServiceName

ClusterName, TaskDefinitionFamily

Amazon ECS タスク内のコンテナが再起動された回数。

このメトリクスは、再起動ポリシーが有効になっているコンテナのみを対象として収集されます。

単位: 数

ServiceCount

ClusterName

クラスター内のサービスの数。

単位: 数

StorageReadBytes

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションによって指定されたリソース内のインスタンスのストレージから読み取られたバイト数。これにはストレージデバイスの読み取りバイト数は含まれません。このメトリクスは、Docker ランタイムから取得されます。

単位: バイト

StorageWriteBytes

TaskDefinitionFamily, ClusterName

ServiceName, ClusterName

ClusterName

使用しているディメンションによって指定されたリソースのストレージに書き込まれたバイト数。このメトリクスは、Docker ランタイムから取得されます。

単位: バイト

TaskCount

ClusterName

クラスターで実行されているタスクの数。

単位: 数

TaskSetCount

ServiceName, ClusterName

サービス内のタスクセットの数。

単位: 数

注記

EphemeralStorageReserved および EphemeralStorageUtilized メトリクスは、Fargate Linux プラットフォームのバージョン 1.4.0 以降で実行されるタスクでの使用できます。

Fargate はディスク上のスペースを予約します。スペースは Fargate によってのみ使用されます。これには課金されることはありません。これらのメトリクスには表示されません。ただし、この追加ストレージは、df などの他のツールでも確認できます。

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

メトリクス名 ディメンション 説明

instance_cpu_limit

ClusterName

このクラスター内の単一の EC2 インスタンスに割り当てることができる CPU ユニットの最大数。

単位: なし

instance_cpu_reserved_capacity

ClusterName

InstanceId, ContainerInstanceId, ClusterName

クラスター内の単一の EC2 インスタンスで現在予約されている CPU の割合。

単位: パーセント

instance_cpu_usage_total

ClusterName

クラスター内の単一 EC2 インスタンスで使用されている CPU ユニットの数。

単位: なし

instance_cpu_utilization

ClusterName

InstanceId, ContainerInstanceId, ClusterName

クラスター内の単一の EC2 インスタンスで使用されている CPU ユニットの合計割合。

単位: パーセント

instance_filesystem_utilization

ClusterName

InstanceId, ContainerInstanceId, ClusterName

クラスター内の単一の EC2 インスタンスで使用されているファイルシステム容量の合計割合。

単位: パーセント

instance_memory_limit

ClusterName

このクラスター内の単一の EC2 インスタンスに割り当てることができるメモリの最大量(バイト単位)。

単位: バイト

instance_memory_reserved_capacity

ClusterName

InstanceId, ContainerInstanceId, ClusterName

クラスター内の単一の EC2 インスタンスで現在予約されているメモリの割合。

単位: パーセント

instance_memory_utilization

ClusterName

InstanceId, ContainerInstanceId, ClusterName

クラスター内の単一の EC2 インスタンスで使用されているメモリの合計割合。

注記

アプリケーションに Java ZGC ガベージコレクタを使用している場合、このメトリクスが不正確である可能性があります。

単位: パーセント

instance_memory_working_set

ClusterName

クラスター内の単一の EC2 インスタンスで使用されているメモリの量(バイト単位)。

注記

アプリケーションに Java ZGC ガベージコレクタを使用している場合、このメトリクスが不正確である可能性があります。

単位: バイト

instance_network_total_bytes

ClusterName

クラスター内の単一の EC2 インスタンスでネットワーク上で送受信された 1 秒あたりの合計バイト数。

単位: バイト/秒

instance_number_of_running_tasks

ClusterName

クラスター内の単一の EC2 インスタンスで実行中のタスクの数。

単位: 数