表題の件に関して、今回取り扱う課題は以下になります。
- –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