3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Amazon ECS】コンテナ単位のCPU使用率をCloudWatchでメトリクス化する

Posted at

やりたいこと

コンテナ単位のCPU使用率をCloudWatchでメトリクス化したい。
Container Insightsでは最小粒度でタスク単位のメトリクスしか取得できないため。

前提

  • Amazon ECSでContainer Insightsを有効にしている

やり方

Container InsightsがパフォーマンスログイベントをCloudWatch Logsに保存してくれる。
ここには使用中CPUユニット数を示すCpuUtilizedと予約済ユニット数を示すCpuReservedというフィールドがあるので、この2つをメトリクス化する。(CPUユニットについてはこちらの記事が分かりやすい)

performance.json
{
    "Version": "0",
    "Type": "Container",
    "ContainerName": "api",
    "TaskId": "XXXX",
    "TaskDefinitionFamily": "XXXX",
    "TaskDefinitionRevision": "5",
    "ServiceName": "XXXX",
    "ClusterName": "XXXX",
    "Image": "XXXX",
    "ContainerKnownStatus": "RUNNING",
    "Timestamp": 1636001760000,
    "CpuUtilized": 199.21151692708335,
    "CpuReserved": 1024,
    "MemoryUtilized": 510,
    "MemoryReserved": 1024,
    "StorageReadBytes": 0,
    "StorageWriteBytes": 36864,
    "NetworkRxBytes": 50032,
    "NetworkRxDropped": 0,
    "NetworkRxErrors": 0,
    "NetworkRxPackets": 524704,
    "NetworkTxBytes": 49958,
    "NetworkTxDropped": 0,
    "NetworkTxErrors": 0,
    "NetworkTxPackets": 374928
}

手順

CloudWatch Logsの画面からパフォーマンスログイベントを選択します。
077)1-7 (44).png

メトリクスフィルターのタブから新規作成します。
Log groups awsecscontainerinsightswear2-service-prd-apiperformance.png

まずCpuUtilizedをメトリクス化していきます。

フィルターパターンにはコンテナ名を指定します。ここでは{ $.ContainerName = "api" }のようにして一意のコンテナのログだけが抽出されるようにします。
717-3-1FR.png

パターンをテストし、一意のコンテナのログだけが抽出されていることを確認してください。
FargateTelemetry-6603.png

メトリクス値を$.CpuUtilizedとします。この他の項目は任意なのでお好きに設定してください。
ARUZKOHILT.png

こちらも任意ですが指定しておくとよいです。
ログ内のフィールドをディメンションとして設定することでフィルタリングしやすくなります。
ContainerName.png

変更を保存します。
Review and confirm.png

以上でCpuUtilizedのメトリクス化は完了です。

同じ要領でCpuReservedもメトリクス化してください。
Review and confirm.png

しばらくすると設定した名前空間にメトリクスが保存されるようになります。
0550 0550 0550 0550 0551 0551 0551 0551 0552.png

数式を追加するなどしてお好きに加工してください。
下図では(CpuUtilized/CpuReserved)*100として目的だったコンテナ単位でのCPU使用率を取得しています。
api CpuUtilizedapi_CpuReserved100.png

おわり。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?