2013年3月26日火曜日

Python版AWSコマンドラインツールでCloudWatchのメトリックス情報を取得

スズキです。

どちらかというと、下記のメモとして...
  • "--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

そして、Nagiosの新CloudWatchプラグインへ...
--------
http://www.suz-lab.com

0 コメント: