表題の件に関して、今回取り扱う課題は以下になります。

  • –dimensionsの指定方法
  • dateコマンドのフォーマットと時刻(相対的)の指定方法
  • jqの出力のダブルクウォートを削除("10"→10)

Python版AWSコマンドラインツールでCloudWatchのメトリックス情報を取得する方法は下記の通りです。

# aws cloudwatch get-metric-statistics 
> --namespace   AWS/EC2 
> --metric-name CPUUtilization 
> --dimensions  '{"name":"InstanceId","value":"i-xxxxxxxx"}' 
> --statistics  Average 
> --period      60 
> --start-time  `date -u -d '10 minutes ago' +%Y-%m-%dT%TZ` 
> --end-time    `date -u +%Y-%m-%dT%TZ`
{
    "Label": "CPUUtilization", 
    "ResponseMetadata": {
        "RequestId": "e54a59ca-95f4-11e2-8103-6f7ec19b50ca"
    }, 
    "Datapoints": [
        {
            "Timestamp": "2013-03-26T09:04:00Z", 
            "Average": "12.662", 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2013-03-26T08:59:00Z", 
            "Average": "1.334", 
            "Unit": "Percent"
        }
    ]
}

jqを利用して最初のデータの値のみダブルクウォートを削除した形で出力する場合は、下記となります。

# aws cloudwatch get-metric-statistics 
> --namespace   AWS/EC2 
> --metric-name CPUUtilization 
> --dimensions  '{"name":"InstanceId","value":"i-xxxxxxxx"}' 
> --statistics  Average 
> --period      60 
> --start-time  `date -u -d '10 minutes ago' +%Y-%m-%dT%TZ` 
> --end-time    `date -u +%Y-%m-%dT%TZ` 
> | jq '.Datapoints[0] | .Average' 
> | cut -d" -f2
3.338

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら