This documentation is for Version 1 of the Amazon CLI only. For documentation related to Version 2 of the Amazon CLI, see the Version 2 User Guide.
CloudWatch examples using Amazon CLI
The following code examples show you how to perform actions and implement common scenarios by using the Amazon Command Line Interface with CloudWatch.
Actions are code excerpts from larger programs and must be run in context. While actions show you how to call individual service functions, you can see actions in context in their related scenarios.
Each example includes a link to the complete source code, where you can find instructions on how to set up and run the code in context.
Topics
Actions
The following code example shows how to use delete-alarms
.
- Amazon CLI
-
To delete an alarm
The following example uses the
delete-alarms
command to delete the Amazon CloudWatch alarm named "myalarm":aws cloudwatch delete-alarms --alarm-names
myalarm
Output:
This command returns to the prompt if successful.
-
For API details, see DeleteAlarms
in Amazon CLI Command Reference.
-
The following code example shows how to use describe-alarm-history
.
- Amazon CLI
-
To retrieve history for an alarm
The following example uses the
describe-alarm-history
command to retrieve history for the Amazon CloudWatch alarm named "myalarm":aws cloudwatch describe-alarm-history --alarm-name
"myalarm"
--history-item-typeStateUpdate
Output:
{ "AlarmHistoryItems": [ { "Timestamp": "2014-04-09T18:59:06.442Z", "HistoryItemType": "StateUpdate", "AlarmName": "myalarm", "HistoryData": "{\"version\":\"1.0\",\"oldState\":{\"stateValue\":\"ALARM\",\"stateReason\":\"testing purposes\"},\"newState\":{\"stateValue\":\"OK\",\"stateReason\":\"Threshold Crossed: 2 datapoints were not greater than the threshold (70.0). The most recent datapoints: [38.958, 40.292].\",\"stateReasonData\":{\"version\":\"1.0\",\"queryDate\":\"2014-04-09T18:59:06.419+0000\",\"startDate\":\"2014-04-09T18:44:00.000+0000\",\"statistic\":\"Average\",\"period\":300,\"recentDatapoints\":[38.958,40.292],\"threshold\":70.0}}}", "HistorySummary": "Alarm updated from ALARM to OK" }, { "Timestamp": "2014-04-09T18:59:05.805Z", "HistoryItemType": "StateUpdate", "AlarmName": "myalarm", "HistoryData": "{\"version\":\"1.0\",\"oldState\":{\"stateValue\":\"OK\",\"stateReason\":\"Threshold Crossed: 2 datapoints were not greater than the threshold (70.0). The most recent datapoints: [38.839999999999996, 39.714].\",\"stateReasonData\":{\"version\":\"1.0\",\"queryDate\":\"2014-03-11T22:45:41.569+0000\",\"startDate\":\"2014-03-11T22:30:00.000+0000\",\"statistic\":\"Average\",\"period\":300,\"recentDatapoints\":[38.839999999999996,39.714],\"threshold\":70.0}},\"newState\":{\"stateValue\":\"ALARM\",\"stateReason\":\"testing purposes\"}}", "HistorySummary": "Alarm updated from OK to ALARM" } ] }
-
For API details, see DescribeAlarmHistory
in Amazon CLI Command Reference.
-
The following code example shows how to use describe-alarms-for-metric
.
- Amazon CLI
-
To display information about alarms associated with a metric
The following example uses the
describe-alarms-for-metric
command to display information about any alarms associated with the Amazon EC2 CPUUtilization metric and the instance with the ID i-0c986c72.:aws cloudwatch describe-alarms-for-metric --metric-name
CPUUtilization
--namespaceAWS/EC2
--dimensionsName=InstanceId,Value=i-0c986c72
Output:
{ "MetricAlarms": [ { "EvaluationPeriods": 10, "AlarmArn": "arn:aws:cloudwatch:us-east-1:111122223333:alarm:myHighCpuAlarm2", "StateUpdatedTimestamp": "2013-10-30T03:03:51.479Z", "AlarmConfigurationUpdatedTimestamp": "2013-10-30T03:03:50.865Z", "ComparisonOperator": "GreaterThanOrEqualToThreshold", "AlarmActions": [ "arn:aws:sns:us-east-1:111122223333:NotifyMe" ], "Namespace": "AWS/EC2", "AlarmDescription": "CPU usage exceeds 70 percent", "StateReasonData": "{\"version\":\"1.0\",\"queryDate\":\"2013-10-30T03:03:51.479+0000\",\"startDate\":\"2013-10-30T02:08:00.000+0000\",\"statistic\":\"Average\",\"period\":300,\"recentDatapoints\":[40.698,39.612,42.432,39.796,38.816,42.28,42.854,40.088,40.760000000000005,41.316],\"threshold\":70.0}", "Period": 300, "StateValue": "OK", "Threshold": 70.0, "AlarmName": "myHighCpuAlarm2", "Dimensions": [ { "Name": "InstanceId", "Value": "i-0c986c72" } ], "Statistic": "Average", "StateReason": "Threshold Crossed: 10 datapoints were not greater than or equal to the threshold (70.0). The most recent datapoints: [40.760000000000005, 41.316].", "InsufficientDataActions": [], "OKActions": [], "ActionsEnabled": true, "MetricName": "CPUUtilization" }, { "EvaluationPeriods": 2, "AlarmArn": "arn:aws:cloudwatch:us-east-1:111122223333:alarm:myHighCpuAlarm", "StateUpdatedTimestamp": "2014-04-09T18:59:06.442Z", "AlarmConfigurationUpdatedTimestamp": "2014-04-09T22:26:05.958Z", "ComparisonOperator": "GreaterThanThreshold", "AlarmActions": [ "arn:aws:sns:us-east-1:111122223333:HighCPUAlarm" ], "Namespace": "AWS/EC2", "AlarmDescription": "CPU usage exceeds 70 percent", "StateReasonData": "{\"version\":\"1.0\",\"queryDate\":\"2014-04-09T18:59:06.419+0000\",\"startDate\":\"2014-04-09T18:44:00.000+0000\",\"statistic\":\"Average\",\"period\":300,\"recentDatapoints\":[38.958,40.292],\"threshold\":70.0}", "Period": 300, "StateValue": "OK", "Threshold": 70.0, "AlarmName": "myHighCpuAlarm", "Dimensions": [ { "Name": "InstanceId", "Value": "i-0c986c72" } ], "Statistic": "Average", "StateReason": "Threshold Crossed: 2 datapoints were not greater than the threshold (70.0). The most recent datapoints: [38.958, 40.292].", "InsufficientDataActions": [], "OKActions": [], "ActionsEnabled": false, "MetricName": "CPUUtilization" } ] }
-
For API details, see DescribeAlarmsForMetric
in Amazon CLI Command Reference.
-
The following code example shows how to use describe-alarms
.
- Amazon CLI
-
To list information about an alarm
The following example uses the
describe-alarms
command to provide information about the alarm named "myalarm":aws cloudwatch describe-alarms --alarm-names
"myalarm"
Output:
{ "MetricAlarms": [ { "EvaluationPeriods": 2, "AlarmArn": "arn:aws:cloudwatch:us-east-1:123456789012:alarm:myalarm", "StateUpdatedTimestamp": "2014-04-09T18:59:06.442Z", "AlarmConfigurationUpdatedTimestamp": "2012-12-27T00:49:54.032Z", "ComparisonOperator": "GreaterThanThreshold", "AlarmActions": [ "arn:aws:sns:us-east-1:123456789012:myHighCpuAlarm" ], "Namespace": "AWS/EC2", "AlarmDescription": "CPU usage exceeds 70 percent", "StateReasonData": "{\"version\":\"1.0\",\"queryDate\":\"2014-04-09T18:59:06.419+0000\",\"startDate\":\"2014-04-09T18:44:00.000+0000\",\"statistic\":\"Average\",\"period\":300,\"recentDatapoints\":[38.958,40.292],\"threshold\":70.0}", "Period": 300, "StateValue": "OK", "Threshold": 70.0, "AlarmName": "myalarm", "Dimensions": [ { "Name": "InstanceId", "Value": "i-0c986c72" } ], "Statistic": "Average", "StateReason": "Threshold Crossed: 2 datapoints were not greater than the threshold (70.0). The most recent datapoints: [38.958, 40.292].", "InsufficientDataActions": [], "OKActions": [], "ActionsEnabled": true, "MetricName": "CPUUtilization" } ] }
-
For API details, see DescribeAlarms
in Amazon CLI Command Reference.
-
The following code example shows how to use disable-alarm-actions
.
- Amazon CLI
-
To disable actions for an alarm
The following example uses the
disable-alarm-actions
command to disable all actions for the alarm named myalarm.:aws cloudwatch disable-alarm-actions --alarm-names
myalarm
This command returns to the prompt if successful.
-
For API details, see DisableAlarmActions
in Amazon CLI Command Reference.
-
The following code example shows how to use enable-alarm-actions
.
- Amazon CLI
-
To enable all actions for an alarm
The following example uses the
enable-alarm-actions
command to enable all actions for the alarm named myalarm.:aws cloudwatch enable-alarm-actions --alarm-names
myalarm
This command returns to the prompt if successful.
-
For API details, see EnableAlarmActions
in Amazon CLI Command Reference.
-
The following code example shows how to use get-metric-statistics
.
- Amazon CLI
-
To get the CPU utilization per EC2 instance
The following example uses the
get-metric-statistics
command to get the CPU utilization for an EC2 instance with the ID i-abcdef.aws cloudwatch get-metric-statistics --metric-name
CPUUtilization
--start-time2014-04-08T23:18:00Z
--end-time2014-04-09T23:18:00Z
--period3600
--namespaceAWS/EC2
--statisticsMaximum
--dimensionsName=InstanceId,Value=i-abcdef
Output:
{ "Datapoints": [ { "Timestamp": "2014-04-09T11:18:00Z", "Maximum": 44.79, "Unit": "Percent" }, { "Timestamp": "2014-04-09T20:18:00Z", "Maximum": 47.92, "Unit": "Percent" }, { "Timestamp": "2014-04-09T19:18:00Z", "Maximum": 50.85, "Unit": "Percent" }, { "Timestamp": "2014-04-09T09:18:00Z", "Maximum": 47.92, "Unit": "Percent" }, { "Timestamp": "2014-04-09T03:18:00Z", "Maximum": 76.84, "Unit": "Percent" }, { "Timestamp": "2014-04-09T21:18:00Z", "Maximum": 48.96, "Unit": "Percent" }, { "Timestamp": "2014-04-09T14:18:00Z", "Maximum": 47.92, "Unit": "Percent" }, { "Timestamp": "2014-04-09T08:18:00Z", "Maximum": 47.92, "Unit": "Percent" }, { "Timestamp": "2014-04-09T16:18:00Z", "Maximum": 45.55, "Unit": "Percent" }, { "Timestamp": "2014-04-09T06:18:00Z", "Maximum": 47.92, "Unit": "Percent" }, { "Timestamp": "2014-04-09T13:18:00Z", "Maximum": 45.08, "Unit": "Percent" }, { "Timestamp": "2014-04-09T05:18:00Z", "Maximum": 47.92, "Unit": "Percent" }, { "Timestamp": "2014-04-09T18:18:00Z", "Maximum": 46.88, "Unit": "Percent" }, { "Timestamp": "2014-04-09T17:18:00Z", "Maximum": 52.08, "Unit": "Percent" }, { "Timestamp": "2014-04-09T07:18:00Z", "Maximum": 47.92, "Unit": "Percent" }, { "Timestamp": "2014-04-09T02:18:00Z", "Maximum": 51.23, "Unit": "Percent" }, { "Timestamp": "2014-04-09T12:18:00Z", "Maximum": 47.67, "Unit": "Percent" }, { "Timestamp": "2014-04-08T23:18:00Z", "Maximum": 46.88, "Unit": "Percent" }, { "Timestamp": "2014-04-09T10:18:00Z", "Maximum": 51.91, "Unit": "Percent" }, { "Timestamp": "2014-04-09T04:18:00Z", "Maximum": 47.13, "Unit": "Percent" }, { "Timestamp": "2014-04-09T15:18:00Z", "Maximum": 48.96, "Unit": "Percent" }, { "Timestamp": "2014-04-09T00:18:00Z", "Maximum": 48.16, "Unit": "Percent" }, { "Timestamp": "2014-04-09T01:18:00Z", "Maximum": 49.18, "Unit": "Percent" } ], "Label": "CPUUtilization" }
Specifying multiple dimensions
The following example illustrates how to specify multiple dimensions. Each dimension is specified as a Name/Value pair, with a comma between the name and the value. Multiple dimensions are separated by a space. If a single metric includes multiple dimensions, you must specify a value for every defined dimension.
For more examples using the
get-metric-statistics
command, see Get Statistics for a Metric in the Amazon CloudWatch Developer Guide.aws cloudwatch get-metric-statistics --metric-name
Buffers
--namespaceMyNameSpace
--dimensionsName=InstanceID,Value=i-abcdef
Name=InstanceType,Value=m1.small
--start-time2016-10-15T04:00:00Z
--end-time2016-10-19T07:00:00Z
--statisticsAverage
--period60
-
For API details, see GetMetricStatistics
in Amazon CLI Command Reference.
-
The following code example shows how to use list-metrics
.
- Amazon CLI
-
To list the metrics for Amazon SNS
The following
list-metrics
example displays the metrics for Amazon SNS.aws cloudwatch list-metrics \ --namespace
"AWS/SNS"
Output:
{ "Metrics": [ { "Namespace": "AWS/SNS", "Dimensions": [ { "Name": "TopicName", "Value": "NotifyMe" } ], "MetricName": "PublishSize" }, { "Namespace": "AWS/SNS", "Dimensions": [ { "Name": "TopicName", "Value": "CFO" } ], "MetricName": "PublishSize" }, { "Namespace": "AWS/SNS", "Dimensions": [ { "Name": "TopicName", "Value": "NotifyMe" } ], "MetricName": "NumberOfNotificationsFailed" }, { "Namespace": "AWS/SNS", "Dimensions": [ { "Name": "TopicName", "Value": "NotifyMe" } ], "MetricName": "NumberOfNotificationsDelivered" }, { "Namespace": "AWS/SNS", "Dimensions": [ { "Name": "TopicName", "Value": "NotifyMe" } ], "MetricName": "NumberOfMessagesPublished" }, { "Namespace": "AWS/SNS", "Dimensions": [ { "Name": "TopicName", "Value": "CFO" } ], "MetricName": "NumberOfMessagesPublished" }, { "Namespace": "AWS/SNS", "Dimensions": [ { "Name": "TopicName", "Value": "CFO" } ], "MetricName": "NumberOfNotificationsDelivered" }, { "Namespace": "AWS/SNS", "Dimensions": [ { "Name": "TopicName", "Value": "CFO" } ], "MetricName": "NumberOfNotificationsFailed" } ] }
-
For API details, see ListMetrics
in Amazon CLI Command Reference.
-
The following code example shows how to use put-metric-alarm
.
- Amazon CLI
-
To send an Amazon Simple Notification Service email message when CPU utilization exceeds 70 percent
The following example uses the
put-metric-alarm
command to send an Amazon Simple Notification Service email message when CPU utilization exceeds 70 percent:aws cloudwatch put-metric-alarm --alarm-name
cpu-mon
--alarm-description"Alarm when CPU exceeds 70 percent"
--metric-nameCPUUtilization
--namespaceAWS/EC2
--statisticAverage
--period300
--threshold70
--comparison-operatorGreaterThanThreshold
--dimensions"Name=InstanceId,Value=i-12345678"
--evaluation-periods2
--alarm-actionsarn:aws:sns:us-east-1:111122223333:MyTopic
--unitPercent
This command returns to the prompt if successful. If an alarm with the same name already exists, it will be overwritten by the new alarm.
To specify multiple dimensions
The following example illustrates how to specify multiple dimensions. Each dimension is specified as a Name/Value pair, with a comma between the name and the value. Multiple dimensions are separated by a space:
aws cloudwatch put-metric-alarm --alarm-name
"Default_Test_Alarm3"
--alarm-description"The default example alarm"
--namespace"CW EXAMPLE METRICS"
--metric-nameDefault_Test
--statisticAverage
--period60
--evaluation-periods3
--threshold50
--comparison-operatorGreaterThanOrEqualToThreshold
--dimensionsName=key1,Value=value1
Name=key2,Value=value2
-
For API details, see PutMetricAlarm
in Amazon CLI Command Reference.
-
The following code example shows how to use put-metric-data
.
- Amazon CLI
-
To publish a custom metric to Amazon CloudWatch
The following example uses the
put-metric-data
command to publish a custom metric to Amazon CloudWatch:aws cloudwatch put-metric-data --namespace
"Usage Metrics"
--metric-datafile://metric.json
The values for the metric itself are stored in the JSON file,
metric.json
.Here are the contents of that file:
[ { "MetricName": "New Posts", "Timestamp": "Wednesday, June 12, 2013 8:28:20 PM", "Value": 0.50, "Unit": "Count" } ]
For more information, see Publishing Custom Metrics in the Amazon CloudWatch Developer Guide.
To specify multiple dimensions
The following example illustrates how to specify multiple dimensions. Each dimension is specified as a Name=Value pair. Multiple dimensions are separated by a comma.:
aws cloudwatch put-metric-data --metric-name
Buffers
--namespaceMyNameSpace
--unitBytes
--value231434333
--dimensionsInstanceID=1-23456789,InstanceType=m1.small
-
For API details, see PutMetricData
in Amazon CLI Command Reference.
-
The following code example shows how to use set-alarm-state
.
- Amazon CLI
-
To temporarily change the state of an alarm
The following example uses the
set-alarm-state
command to temporarily change the state of an Amazon CloudWatch alarm named "myalarm" and set it to the ALARM state for testing purposes:aws cloudwatch set-alarm-state --alarm-name
"myalarm"
--state-valueALARM
--state-reason"testing purposes"
This command returns to the prompt if successful.
-
For API details, see SetAlarmState
in Amazon CLI Command Reference.
-