[小ネタ] CloudWatch メトリクスのグラフをローカルに保存しちゃうぞ!

おつかれさまです。サーバーレス開発部の新井です。

最近、コンソールから CloudWatch メトリクスをポチポチいじることが多いのですが、 グラフの画像をメンバーに共有するときいちいちスクショ撮るのが面倒だったので、簡単に画像エクスポートする方法ないのか?と調べていたところ、AWS CLIで出来そうでだったのでこちらを紹介したいと思います。

【公式ドキュメント】

  • https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-widget-image.html

AWSのコンソールでポチポチいじる

1. 出力したいグラフを選択する

「すべてのメトリクス」の項目で、でグラフ化したいメトリクスを選択します。

今回は API Gateway のメトリクス

  • Count (リクエスト回数)
  • 5XXError (500系のエラー回数)

を CloudWatch メトリクスに表示しています。

2. グラフを整形する

「グラフのオプション」の項目で、タイトル、凡例、軸、などいろいろ操作出来ます。

見た目がなんとなく良くなります。

ちなみに、Widget Typeスタックエリアに変えたらなぜかグラフがバグっていました。。。

3. 出力形式をコピーしてCLI実行

「ソース」の項目で、イメージAPIを選択しJSONデータをコピーして、ローカルにmetrics.jsonというファイルで保存します。

  • コマンド実行
# AWS CLIのバージョン
$ aws --version
aws-cli/1.16.86 Python/3.6.2 Linux/4.15.0-50-generic botocore/1.12.84
# コマンド実行
$ aws cloudwatch get-metric-widget-image --metric-widget file://metrics.json --output-format "png" --output text --query MetricWidgetImage | base64 --decode > metrics.png
  • 取得したpng画像ファイル

はい、これで画像ファイル取得できましたね!

まとめ

いかがだったでしょうか。

意外と知らない人多いのでは?と思ったので、宣伝の意味も込めてブログ書きました。

以上、どなたかの役に立てば幸いです。