これは
初老丸 Advent Calendar 2017 5 日目の記事になる予定です。
tl;dr
AWS CLI の get-metric-statistics を利用して CloudWatch のメトリクスを取得する際、以下のように長ったらしいオプションを付けるのがダルかったので cw というコマンドを作った。
aws cloudwatch get-metric-statistics \ --metric-name CPUUtilization \ --start-time 2014-04-08T23:18:00 --end-time 2014-04-09T23:18:00 \ --period 3600 \ --namespace AWS/EC2 \ --statistics Maximum \ --dimensions Name=InstanceId,Value=i-abcdef
とにかくオプションが覚えられないのが辛い。
作ったもの
使い方
YAML を書く
sample.yml というファイル名で以下のような定義を書く。
dev: # --target オプションで指定するキー start_time: -3600 # 取得開始時間を秒で指定(3600 秒前) metric_name: CPUUtilization # メトリクス名を指定 namespace: AWS/EC2 # Namespace 名を指定 period: 300 # Period を指定 statistics: Maximum # 統計を指定(Minimum, Maximum, Sum, Average, SampleCount) dimensions: # ディメンション を指定 - name: InstanceId value: i-xxxxxxxx unit: Percent # 単位を指定(Seconds, Bytes, Percent, Count... etc)
statistics
や unit
の種類が直ぐに出てこなかったり、AWS CLI だとコマンドを再利用し辛かったりするので YAML に残しておくのは有りなんぢゃないかなと思う。
cw 実行
$ ./cw -profile=you_profile -config=path/to/sample.yml -target=dev
以下のように出力される。
[{ Maximum: 0.491803278687332, Timestamp: 2017-11-26 13:37:00 +0000 UTC, Unit: "Percent" } { Maximum: 0.500000000000303, Timestamp: 2017-11-26 13:42:00 +0000 UTC, Unit: "Percent" } { Maximum: 0.500000000000303, Timestamp: 2017-11-26 13:47:00 +0000 UTC, Unit: "Percent" }]
特に何も弄っていない。
以上
メモでした。年齢が上がってくるにつれ、コマンドラインオプションとか覚えられなくなるし、出来るだけコードとかに落としておくような癖をつけたいなと考えている。