【新機能】CloudWatch ダッシュボードAPI
渡辺です。
みんな大好きCloudWatchに待望のアップデートです。 CloudWatch ダッシュボードがAWS CLIから登録できるようになりました。
put-dashboard
put-dashboardは、ダッシュボードを登録します。
--dashboard-name
でダッシュボード名を、--dashboard-body
で表示するウィジェットを指定します。
dashboard-body
はJSONファイルを指定するのが無難でしょう。
test.json
{ "widgets": [ { "type": "metric", "x": 0, "y": 0, "width": 6, "height": 6, "properties": { "view": "timeSeries", "stacked": false, "metrics": [ [ "Classmethod/EC2", "MemoryUtilization", "InstanceId", "i-xxxxxxxx" ] ], "region": "ap-northeast-1" } }, { "type": "metric", "x": 6, "y": 0, "width": 6, "height": 6, "properties": { "view": "timeSeries", "stacked": false, "metrics": [ [ "Classmethod/EC2", "DiskUsage", "InstanceId", "i-xxxxxxxx" ] ], "region": "ap-northeast-1" } } ] }
$ aws cloudwatch put-dashboard --dashboard-name test --dashboard-body file://test.json { "DashboardValidationMessages": [] }
マネジメントコンソールから確認できました。
list-dashboards
list-dashboardsは、ダッシュボードの一覧を取得します。
$ aws cloudwatch list-dashboards { "DashboardEntries": [ { "DashboardName": "test", "LastModified": "2017-07-05T23:46:32Z", "Size": 908 } ] }
get-dashboard
get-dashboardは、ダッシュボードの情報を取得します。
$ aws cloudwatch get-dashboard --dashboard-name test { "DashboardArn": "arn:aws:cloudwatch::378384917084:dashboard/test", "DashboardBody": "{\n \"widgets\": [\n {\n \"type\": \"metric\",\n \"x\": 0,\n \"y\": 0,\n \"width\": 6,\n \"height\": 6,\n \"properties\": {\n \"view\": \"timeSeries\",\n \"stacked\": false,\n \"metrics\": [\n [ \"Classmethod/EC2\", \"MemoryUtilization\", \"InstanceId\", \"i-xxxxxxxx\" ]\n ],\n \"region\": \"ap-northeast-1\"\n }\n },\n {\n \"type\": \"metric\",\n \"x\": 6,\n \"y\": 0,\n \"width\": 6,\n \"height\": 6,\n \"properties\": {\n \"view\": \"timeSeries\",\n \"stacked\": false,\n \"metrics\": [\n [ \"Classmethod/EC2\", \"DiskUsage\", \"InstanceId\", \"i-xxxxxxxx\" ]\n ],\n \"region\": \"ap-northeast-1\"\n }\n }\n ]\n}\n" }
DashboardBodyがJSONの中にJSONとちょっと残念です。
まとめ
CloudWatchダッシュボードがAPIで登録できるようになりました。 EC2インスタンス起動時にダッシュボードを登録/更新する、起動中のEC2インスタンスの状態を表示するダッシュボードを作成するなど、応用範囲が広いAPIです!