AWS CLI で CloudWatch メトリクスのウィジェット画像を取得する

AWS CLIでAWS CloudWatchメトリクスのグラフを画像としてダウンロードするには以下のコマンドを実行する。

aws cloudwatch get-metric-widget-image --query "MetricWidgetImage" --output text \
  --metric-widget '{JSON文字列}' | base64 -d > path/to/output.png

JSON文字列の取得方法

JSON文字列はCloudWatchメトリクスの画面で「発信元」タブを選択し、「イメージAPI」を選択すると取得できる。

CloudWatchメトリクス画面

widthとheightは欲しい画像サイズに調整する。

$ aws cloudwatch get-metric-widget-image --query "MetricWidgetImage" --output text \
  --metric-widget '{
    "view": "timeSeries",
    "stacked": false,
    "metrics": [
        [ "AWS/Lambda", "AsyncEventAge" ]
    ],
    "width": 600,
    "height": 200,
    "start": "-PT72H",
    "end": "P0D"
}' | base64 -d > output.png

CloudWatchメトリクス画像

aws cloudwatch get-metric-widget-imageコマンドの出力

aws cloudwatch get-metric-widget-imageコマンドの出力以下のとおり。

{
    "MetricWidgetImage": "BASE64文字列"
}

この結果から--query "MetricWidgetImage"で画像データのみを取得し、--output textで出力ダブルクオート無しの文字列として出力する。
出力した文字列(BASE64文字列)をbase64 -dでデコードすれば画像ファイルを取得できる。