CloudWatch ********** Client ====== class CloudWatch.Client A low-level client representing Amazon CloudWatch Amazon CloudWatch monitors your Amazon Web Services (Amazon Web Services) resources and the applications you run on Amazon Web Services in real time. You can use CloudWatch to collect and track metrics, which are the variables you want to measure for your resources and applications. CloudWatch alarms send notifications or automatically change the resources you are monitoring based on rules that you define. For example, you can monitor the CPU usage and disk reads and writes of your Amazon EC2 instances. Then, use this data to determine whether you should launch additional instances to handle increased load. You can also use this data to stop under-used instances to save money. In addition to monitoring the built-in metrics that come with Amazon Web Services, you can monitor your own custom metrics. With CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health. import boto3 client = boto3.client('cloudwatch') These are the available methods: * can_paginate * close * delete_alarms * delete_anomaly_detector * delete_dashboards * delete_insight_rules * delete_metric_stream * describe_alarm_history * describe_alarms * describe_alarms_for_metric * describe_anomaly_detectors * describe_insight_rules * disable_alarm_actions * disable_insight_rules * enable_alarm_actions * enable_insight_rules * get_dashboard * get_insight_rule_report * get_metric_data * get_metric_statistics * get_metric_stream * get_metric_widget_image * get_paginator * get_waiter * list_dashboards * list_managed_insight_rules * list_metric_streams * list_metrics * list_tags_for_resource * put_anomaly_detector * put_composite_alarm * put_dashboard * put_insight_rule * put_managed_insight_rules * put_metric_alarm * put_metric_data * put_metric_stream * set_alarm_state * start_metric_streams * stop_metric_streams * tag_resource * untag_resource Paginators ========== Paginators are available on a client instance via the "get_paginator" method. For more detailed instructions and examples on the usage of paginators, see the paginators user guide. The available paginators are: * DescribeAlarmHistory * DescribeAlarms * DescribeAnomalyDetectors * GetMetricData * ListDashboards * ListMetrics Waiters ======= Waiters are available on a client instance via the "get_waiter" method. For more detailed instructions and examples on the usage or waiters, see the waiters user guide. The available waiters are: * AlarmExists * CompositeAlarmExists Resources ========= Resources are available in boto3 via the "resource" method. For more detailed instructions and examples on the usage of resources, see the resources user guide. The available resources are: * Service Resource * Alarm * Metric CloudWatch / Waiter / CompositeAlarmExists CompositeAlarmExists ******************** class CloudWatch.Waiter.CompositeAlarmExists waiter = client.get_waiter('composite_alarm_exists') wait(**kwargs) Polls "CloudWatch.Client.describe_alarms()" every 5 seconds until a successful state is reached. An error is raised after 40 failed checks. See also: AWS API Documentation **Request Syntax** waiter.wait( AlarmNames=[ 'string', ], AlarmNamePrefix='string', AlarmTypes=[ 'CompositeAlarm'|'MetricAlarm', ], ChildrenOfAlarmName='string', ParentsOfAlarmName='string', StateValue='OK'|'ALARM'|'INSUFFICIENT_DATA', ActionPrefix='string', MaxRecords=123, NextToken='string', WaiterConfig={ 'Delay': 123, 'MaxAttempts': 123 } ) Parameters: * **AlarmNames** (*list*) -- The names of the alarms to retrieve information about. * *(string) --* * **AlarmNamePrefix** (*string*) -- An alarm name prefix. If you specify this parameter, you receive information about all alarms that have names that start with this prefix. If this parameter is specified, you cannot specify "AlarmNames". * **AlarmTypes** (*list*) -- Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned, even if composite alarms exist in the account. For example, if you omit this parameter or specify "MetricAlarms", the operation returns only a list of metric alarms. It does not return any composite alarms, even if composite alarms exist in the account. If you specify "CompositeAlarms", the operation returns only a list of composite alarms, and does not return any metric alarms. * *(string) --* * **ChildrenOfAlarmName** (*string*) -- If you use this parameter and specify the name of a composite alarm, the operation returns information about the "children" alarms of the alarm you specify. These are the metric alarms and composite alarms referenced in the "AlarmRule" field of the composite alarm that you specify in "ChildrenOfAlarmName". Information about the composite alarm that you name in "ChildrenOfAlarmName" is not returned. If you specify "ChildrenOfAlarmName", you cannot specify any other parameters in the request except for "MaxRecords" and "NextToken". If you do so, you receive a validation error. Note: Only the "Alarm Name", "ARN", "StateValue" (OK/ALARM/INSUFFICIENT_DATA), and "StateUpdatedTimestamp" information are returned by this operation when you use this parameter. To get complete information about these alarms, perform another "DescribeAlarms" operation and specify the parent alarm names in the "AlarmNames" parameter. * **ParentsOfAlarmName** (*string*) -- If you use this parameter and specify the name of a metric or composite alarm, the operation returns information about the "parent" alarms of the alarm you specify. These are the composite alarms that have "AlarmRule" parameters that reference the alarm named in "ParentsOfAlarmName". Information about the alarm that you specify in "ParentsOfAlarmName" is not returned. If you specify "ParentsOfAlarmName", you cannot specify any other parameters in the request except for "MaxRecords" and "NextToken". If you do so, you receive a validation error. Note: Only the Alarm Name and ARN are returned by this operation when you use this parameter. To get complete information about these alarms, perform another "DescribeAlarms" operation and specify the parent alarm names in the "AlarmNames" parameter. * **StateValue** (*string*) -- Specify this parameter to receive information only about alarms that are currently in the state that you specify. * **ActionPrefix** (*string*) -- Use this parameter to filter the results of the operation to only those alarms that use a certain alarm action. For example, you could specify the ARN of an SNS topic to find all alarms that send notifications to that topic. * **MaxRecords** (*integer*) -- The maximum number of alarm descriptions to retrieve. * **NextToken** (*string*) -- The token returned by a previous call to indicate that there is more data available. * **WaiterConfig** (*dict*) -- A dictionary that provides parameters to control waiting behavior. * **Delay** *(integer) --* The amount of time in seconds to wait between attempts. Default: 5 * **MaxAttempts** *(integer) --* The maximum number of attempts to be made. Default: 40 Returns: None CloudWatch / Waiter / AlarmExists AlarmExists *********** class CloudWatch.Waiter.AlarmExists waiter = client.get_waiter('alarm_exists') wait(**kwargs) Polls "CloudWatch.Client.describe_alarms()" every 5 seconds until a successful state is reached. An error is raised after 40 failed checks. See also: AWS API Documentation **Request Syntax** waiter.wait( AlarmNames=[ 'string', ], AlarmNamePrefix='string', AlarmTypes=[ 'CompositeAlarm'|'MetricAlarm', ], ChildrenOfAlarmName='string', ParentsOfAlarmName='string', StateValue='OK'|'ALARM'|'INSUFFICIENT_DATA', ActionPrefix='string', MaxRecords=123, NextToken='string', WaiterConfig={ 'Delay': 123, 'MaxAttempts': 123 } ) Parameters: * **AlarmNames** (*list*) -- The names of the alarms to retrieve information about. * *(string) --* * **AlarmNamePrefix** (*string*) -- An alarm name prefix. If you specify this parameter, you receive information about all alarms that have names that start with this prefix. If this parameter is specified, you cannot specify "AlarmNames". * **AlarmTypes** (*list*) -- Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned, even if composite alarms exist in the account. For example, if you omit this parameter or specify "MetricAlarms", the operation returns only a list of metric alarms. It does not return any composite alarms, even if composite alarms exist in the account. If you specify "CompositeAlarms", the operation returns only a list of composite alarms, and does not return any metric alarms. * *(string) --* * **ChildrenOfAlarmName** (*string*) -- If you use this parameter and specify the name of a composite alarm, the operation returns information about the "children" alarms of the alarm you specify. These are the metric alarms and composite alarms referenced in the "AlarmRule" field of the composite alarm that you specify in "ChildrenOfAlarmName". Information about the composite alarm that you name in "ChildrenOfAlarmName" is not returned. If you specify "ChildrenOfAlarmName", you cannot specify any other parameters in the request except for "MaxRecords" and "NextToken". If you do so, you receive a validation error. Note: Only the "Alarm Name", "ARN", "StateValue" (OK/ALARM/INSUFFICIENT_DATA), and "StateUpdatedTimestamp" information are returned by this operation when you use this parameter. To get complete information about these alarms, perform another "DescribeAlarms" operation and specify the parent alarm names in the "AlarmNames" parameter. * **ParentsOfAlarmName** (*string*) -- If you use this parameter and specify the name of a metric or composite alarm, the operation returns information about the "parent" alarms of the alarm you specify. These are the composite alarms that have "AlarmRule" parameters that reference the alarm named in "ParentsOfAlarmName". Information about the alarm that you specify in "ParentsOfAlarmName" is not returned. If you specify "ParentsOfAlarmName", you cannot specify any other parameters in the request except for "MaxRecords" and "NextToken". If you do so, you receive a validation error. Note: Only the Alarm Name and ARN are returned by this operation when you use this parameter. To get complete information about these alarms, perform another "DescribeAlarms" operation and specify the parent alarm names in the "AlarmNames" parameter. * **StateValue** (*string*) -- Specify this parameter to receive information only about alarms that are currently in the state that you specify. * **ActionPrefix** (*string*) -- Use this parameter to filter the results of the operation to only those alarms that use a certain alarm action. For example, you could specify the ARN of an SNS topic to find all alarms that send notifications to that topic. * **MaxRecords** (*integer*) -- The maximum number of alarm descriptions to retrieve. * **NextToken** (*string*) -- The token returned by a previous call to indicate that there is more data available. * **WaiterConfig** (*dict*) -- A dictionary that provides parameters to control waiting behavior. * **Delay** *(integer) --* The amount of time in seconds to wait between attempts. Default: 5 * **MaxAttempts** *(integer) --* The maximum number of attempts to be made. Default: 40 Returns: None ServiceResource / Sub-Resource / Metric Metric ****** CloudWatch.ServiceResource.Metric(namespace, name) Creates a Metric resource.: metric = cloudwatch.Metric('namespace','name') Parameters: * **namespace** (*string*) -- The Metric's namespace identifier. This **must** be set. * **name** (*string*) -- The Metric's name identifier. This **must** be set. Return type: "CloudWatch.Metric" Returns: A Metric resource ServiceResource / Collection / alarms alarms ****** CloudWatch.ServiceResource.alarms A collection of Alarm resources.A Alarm Collection will include all resources by default, and extreme caution should be taken when performing actions on all resources. all() Creates an iterable of all Alarm resources in the collection. See also: AWS API Documentation **Request Syntax** alarm_iterator = cloudwatch.alarms.all() Return type: list("cloudwatch.Alarm") Returns: A list of Alarm resources delete() Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation. If you specify any incorrect alarm names, the alarms you specify with correct names are still deleted. Other syntax errors might result in no alarms being deleted. To confirm that alarms were deleted successfully, you can use the DescribeAlarms operation after using "DeleteAlarms". Note: It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the "AlarmRule" of one of the alarms to "false".Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. See also: AWS API Documentation **Request Syntax** response = cloudwatch.alarms.delete() Returns: None disable_actions() Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes. See also: AWS API Documentation **Request Syntax** response = cloudwatch.alarms.disable_actions() Returns: None enable_actions() Enables the actions for the specified alarms. See also: AWS API Documentation **Request Syntax** response = cloudwatch.alarms.enable_actions() Returns: None filter(**kwargs) Creates an iterable of all Alarm resources in the collection filtered by kwargs passed to method. A Alarm collection will include all resources by default if no filters are provided, and extreme caution should be taken when performing actions on all resources. See also: AWS API Documentation **Request Syntax** alarm_iterator = cloudwatch.alarms.filter( AlarmNames=[ 'string', ], AlarmNamePrefix='string', AlarmTypes=[ 'CompositeAlarm'|'MetricAlarm', ], ChildrenOfAlarmName='string', ParentsOfAlarmName='string', StateValue='OK'|'ALARM'|'INSUFFICIENT_DATA', ActionPrefix='string', MaxRecords=123, NextToken='string' ) Parameters: * **AlarmNames** (*list*) -- The names of the alarms to retrieve information about. * *(string) --* * **AlarmNamePrefix** (*string*) -- An alarm name prefix. If you specify this parameter, you receive information about all alarms that have names that start with this prefix. If this parameter is specified, you cannot specify "AlarmNames". * **AlarmTypes** (*list*) -- Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned, even if composite alarms exist in the account. For example, if you omit this parameter or specify "MetricAlarms", the operation returns only a list of metric alarms. It does not return any composite alarms, even if composite alarms exist in the account. If you specify "CompositeAlarms", the operation returns only a list of composite alarms, and does not return any metric alarms. * *(string) --* * **ChildrenOfAlarmName** (*string*) -- If you use this parameter and specify the name of a composite alarm, the operation returns information about the "children" alarms of the alarm you specify. These are the metric alarms and composite alarms referenced in the "AlarmRule" field of the composite alarm that you specify in "ChildrenOfAlarmName". Information about the composite alarm that you name in "ChildrenOfAlarmName" is not returned. If you specify "ChildrenOfAlarmName", you cannot specify any other parameters in the request except for "MaxRecords" and "NextToken". If you do so, you receive a validation error. Note: Only the "Alarm Name", "ARN", "StateValue" (OK/ALARM/INSUFFICIENT_DATA), and "StateUpdatedTimestamp" information are returned by this operation when you use this parameter. To get complete information about these alarms, perform another "DescribeAlarms" operation and specify the parent alarm names in the "AlarmNames" parameter. * **ParentsOfAlarmName** (*string*) -- If you use this parameter and specify the name of a metric or composite alarm, the operation returns information about the "parent" alarms of the alarm you specify. These are the composite alarms that have "AlarmRule" parameters that reference the alarm named in "ParentsOfAlarmName". Information about the alarm that you specify in "ParentsOfAlarmName" is not returned. If you specify "ParentsOfAlarmName", you cannot specify any other parameters in the request except for "MaxRecords" and "NextToken". If you do so, you receive a validation error. Note: Only the Alarm Name and ARN are returned by this operation when you use this parameter. To get complete information about these alarms, perform another "DescribeAlarms" operation and specify the parent alarm names in the "AlarmNames" parameter. * **StateValue** (*string*) -- Specify this parameter to receive information only about alarms that are currently in the state that you specify. * **ActionPrefix** (*string*) -- Use this parameter to filter the results of the operation to only those alarms that use a certain alarm action. For example, you could specify the ARN of an SNS topic to find all alarms that send notifications to that topic. * **MaxRecords** (*integer*) -- The maximum number of alarm descriptions to retrieve. * **NextToken** (*string*) -- The token returned by a previous call to indicate that there is more data available. Return type: list("cloudwatch.Alarm") Returns: A list of Alarm resources limit(**kwargs) Creates an iterable up to a specified amount of Alarm resources in the collection. See also: AWS API Documentation **Request Syntax** alarm_iterator = cloudwatch.alarms.limit( count=123 ) Parameters: **count** (*integer*) -- The limit to the number of resources in the iterable. Return type: list("cloudwatch.Alarm") Returns: A list of Alarm resources page_size(**kwargs) Creates an iterable of all Alarm resources in the collection, but limits the number of items returned by each service call by the specified amount. See also: AWS API Documentation **Request Syntax** alarm_iterator = cloudwatch.alarms.page_size( count=123 ) Parameters: **count** (*integer*) -- The number of items returned by each service call Return type: list("cloudwatch.Alarm") Returns: A list of Alarm resources CloudWatch / Resource / ServiceResource Service Resource **************** Note: Before using anything on this page, please refer to the resources user guide for the most recent guidance on using resources. class CloudWatch.ServiceResource A resource representing Amazon CloudWatch: import boto3 cloudwatch = boto3.resource('cloudwatch') Sub-resources ============= Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide. These are the resource's available sub-resources: * Alarm * Metric Collections =========== Collections provide an interface to iterate over and manipulate groups of resources. For more information about collections refer to the Resources Introduction Guide. These are the resource's available collections: * alarms * metrics ServiceResource / Sub-Resource / Alarm Alarm ***** CloudWatch.ServiceResource.Alarm(name) Creates a Alarm resource.: alarm = cloudwatch.Alarm('name') Parameters: **name** (*string*) -- The Alarm's name identifier. This **must** be set. Return type: "CloudWatch.Alarm" Returns: A Alarm resource ServiceResource / Collection / metrics metrics ******* CloudWatch.ServiceResource.metrics A collection of Metric resources.A Metric Collection will include all resources by default, and extreme caution should be taken when performing actions on all resources. all() Creates an iterable of all Metric resources in the collection. See also: AWS API Documentation **Request Syntax** metric_iterator = cloudwatch.metrics.all() Return type: list("cloudwatch.Metric") Returns: A list of Metric resources filter(**kwargs) Creates an iterable of all Metric resources in the collection filtered by kwargs passed to method. A Metric collection will include all resources by default if no filters are provided, and extreme caution should be taken when performing actions on all resources. See also: AWS API Documentation **Request Syntax** metric_iterator = cloudwatch.metrics.filter( Namespace='string', MetricName='string', Dimensions=[ { 'Name': 'string', 'Value': 'string' }, ], NextToken='string', RecentlyActive='PT3H', IncludeLinkedAccounts=True|False, OwningAccount='string' ) Parameters: * **Namespace** (*string*) -- The metric namespace to filter against. Only the namespace that matches exactly will be returned. * **MetricName** (*string*) -- The name of the metric to filter against. Only the metrics with names that match exactly will be returned. * **Dimensions** (*list*) -- The dimensions to filter against. Only the dimension with names that match exactly will be returned. If you specify one dimension name and a metric has that dimension and also other dimensions, it will be returned. * *(dict) --* Represents filters for a dimension. * **Name** *(string) --* **[REQUIRED]** The dimension name to be matched. * **Value** *(string) --* The value of the dimension to be matched. * **NextToken** (*string*) -- The token returned by a previous call to indicate that there is more data available. * **RecentlyActive** (*string*) -- To filter the results to show only metrics that have had data points published in the past three hours, specify this parameter with a value of "PT3H". This is the only valid value for this parameter. The results that are returned are an approximation of the value you specify. There is a low probability that the returned results include metrics with last published data as much as 50 minutes more than the specified time interval. * **IncludeLinkedAccounts** (*boolean*) -- If you are using this operation in a monitoring account, specify "true" to include metrics from source accounts in the returned data. The default is "false". * **OwningAccount** (*string*) -- When you use this operation in a monitoring account, use this field to return metrics only from one source account. To do so, specify that source account ID in this field, and also specify "true" for "IncludeLinkedAccounts". Return type: list("cloudwatch.Metric") Returns: A list of Metric resources limit(**kwargs) Creates an iterable up to a specified amount of Metric resources in the collection. See also: AWS API Documentation **Request Syntax** metric_iterator = cloudwatch.metrics.limit( count=123 ) Parameters: **count** (*integer*) -- The limit to the number of resources in the iterable. Return type: list("cloudwatch.Metric") Returns: A list of Metric resources page_size(**kwargs) Creates an iterable of all Metric resources in the collection, but limits the number of items returned by each service call by the specified amount. See also: AWS API Documentation **Request Syntax** metric_iterator = cloudwatch.metrics.page_size( count=123 ) Parameters: **count** (*integer*) -- The number of items returned by each service call Return type: list("cloudwatch.Metric") Returns: A list of Metric resources Alarm / Reference / metric metric ****** CloudWatch.Alarm.metric ("Metric") The related metric if set, otherwise "None". Alarm / Attribute / evaluation_periods evaluation_periods ****************** CloudWatch.Alarm.evaluation_periods * *(integer) --* The number of periods over which data is compared to the specified threshold. Alarm / Attribute / dimensions dimensions ********** CloudWatch.Alarm.dimensions * *(list) --* The dimensions for the metric associated with the alarm. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non- whitespace character. ASCII control characters are not supported as part of dimension values. Alarm / Action / get_available_subresources get_available_subresources ************************** CloudWatch.Alarm.get_available_subresources() Returns a list of all the available sub-resources for this Resource. Returns: A list containing the name of each sub-resource for this resource Return type: list of str Alarm / Attribute / state_updated_timestamp state_updated_timestamp *********************** CloudWatch.Alarm.state_updated_timestamp * *(datetime) --* The time stamp of the last update to the value of either the "StateValue" or "EvaluationState" parameters. Alarm / Attribute / threshold threshold ********* CloudWatch.Alarm.threshold * *(float) --* The value to compare with the specified statistic. Alarm / Attribute / ok_actions ok_actions ********** CloudWatch.Alarm.ok_actions * *(list) --* The actions to execute when this alarm transitions to the "OK" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* Alarm / Attribute / unit unit **** CloudWatch.Alarm.unit * *(string) --* The unit of the metric associated with the alarm. Alarm / Attribute / threshold_metric_id threshold_metric_id ******************* CloudWatch.Alarm.threshold_metric_id * *(string) --* In an alarm based on an anomaly detection model, this is the ID of the "ANOMALY_DETECTION_BAND" function used as the threshold for the alarm. Alarm / Attribute / treat_missing_data treat_missing_data ****************** CloudWatch.Alarm.treat_missing_data * *(string) --* Sets how this alarm is to handle missing data points. The valid values are "breaching", "notBreaching", "ignore", and "missing". For more information, see Configuring how CloudWatch alarms treat missing data. If this parameter is omitted, the default behavior of "missing" is used. Alarm / Action / load load **** CloudWatch.Alarm.load() Calls "CloudWatch.Client.describe_alarms()" to update the attributes of the Alarm resource. Note that the load and reload methods are the same method and can be used interchangeably. See also: AWS API Documentation **Request Syntax** alarm.load() Returns: None CloudWatch / Resource / Alarm Alarm ***** Note: Before using anything on this page, please refer to the resources user guide for the most recent guidance on using resources. class CloudWatch.Alarm(name) A resource representing an Amazon CloudWatch Alarm: import boto3 cloudwatch = boto3.resource('cloudwatch') alarm = cloudwatch.Alarm('name') Parameters: **name** (*string*) -- The Alarm's name identifier. This **must** be set. Identifiers =========== Identifiers are properties of a resource that are set upon instantiation of the resource. For more information about identifiers refer to the Resources Introduction Guide. These are the resource's available identifiers: * name Attributes ========== Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the "load()" method. For more information about attributes refer to the Resources Introduction Guide. These are the resource's available attributes: * actions_enabled * alarm_actions * alarm_arn * alarm_configuration_updated_timestamp * alarm_description * alarm_name * comparison_operator * datapoints_to_alarm * dimensions * evaluate_low_sample_count_percentile * evaluation_periods * evaluation_state * extended_statistic * insufficient_data_actions * metric_name * metrics * namespace * ok_actions * period * state_reason * state_reason_data * state_transitioned_timestamp * state_updated_timestamp * state_value * statistic * threshold * threshold_metric_id * treat_missing_data * unit References ========== References are related resource instances that have a belongs-to relationship. For more information about references refer to the Resources Introduction Guide. These are the resource's available references: * metric Actions ======= Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide. These are the resource's available actions: * delete * describe_history * disable_actions * enable_actions * get_available_subresources * load * reload * set_state Alarm / Attribute / insufficient_data_actions insufficient_data_actions ************************* CloudWatch.Alarm.insufficient_data_actions * *(list) --* The actions to execute when this alarm transitions to the "INSUFFICIENT_DATA" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* Alarm / Attribute / actions_enabled actions_enabled *************** CloudWatch.Alarm.actions_enabled * *(boolean) --* Indicates whether actions should be executed during any changes to the alarm state. Alarm / Attribute / metric_name metric_name *********** CloudWatch.Alarm.metric_name * *(string) --* The name of the metric associated with the alarm, if this is an alarm based on a single metric. Alarm / Attribute / datapoints_to_alarm datapoints_to_alarm ******************* CloudWatch.Alarm.datapoints_to_alarm * *(integer) --* The number of data points that must be breaching to trigger the alarm. Alarm / Action / describe_history describe_history **************** CloudWatch.Alarm.describe_history(**kwargs) Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for either all metric alarms or all composite alarms are returned. CloudWatch retains the history of an alarm even if you delete the alarm. To use this operation and return information about a composite alarm, you must be signed on with the "cloudwatch:DescribeAlarmHistory" permission that is scoped to "*". You can't return information about composite alarms if your "cloudwatch:DescribeAlarmHistory" permission has a narrower scope. See also: AWS API Documentation **Request Syntax** response = alarm.describe_history( AlarmTypes=[ 'CompositeAlarm'|'MetricAlarm', ], HistoryItemType='ConfigurationUpdate'|'StateUpdate'|'Action', StartDate=datetime(2015, 1, 1), EndDate=datetime(2015, 1, 1), MaxRecords=123, NextToken='string', ScanBy='TimestampDescending'|'TimestampAscending' ) Parameters: * **AlarmTypes** (*list*) -- Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned. * *(string) --* * **HistoryItemType** (*string*) -- The type of alarm histories to retrieve. * **StartDate** (*datetime*) -- The starting date to retrieve alarm history. * **EndDate** (*datetime*) -- The ending date to retrieve alarm history. * **MaxRecords** (*integer*) -- The maximum number of alarm history records to retrieve. * **NextToken** (*string*) -- The token returned by a previous call to indicate that there is more data available. * **ScanBy** (*string*) -- Specified whether to return the newest or oldest alarm history first. Specify "TimestampDescending" to have the newest event history returned first, and specify "TimestampAscending" to have the oldest history returned first. Return type: dict Returns: **Response Syntax** { 'AlarmHistoryItems': [ { 'AlarmName': 'string', 'AlarmType': 'CompositeAlarm'|'MetricAlarm', 'Timestamp': datetime(2015, 1, 1), 'HistoryItemType': 'ConfigurationUpdate'|'StateUpdate'|'Action', 'HistorySummary': 'string', 'HistoryData': 'string' }, ], 'NextToken': 'string' } **Response Structure** * *(dict) --* * **AlarmHistoryItems** *(list) --* The alarm histories, in JSON format. * *(dict) --* Represents the history of a specific alarm. * **AlarmName** *(string) --* The descriptive name for the alarm. * **AlarmType** *(string) --* The type of alarm, either metric alarm or composite alarm. * **Timestamp** *(datetime) --* The time stamp for the alarm history item. * **HistoryItemType** *(string) --* The type of alarm history item. * **HistorySummary** *(string) --* A summary of the alarm history, in text format. * **HistoryData** *(string) --* Data about the alarm, in JSON format. * **NextToken** *(string) --* The token that marks the start of the next batch of returned results. Alarm / Action / disable_actions disable_actions *************** CloudWatch.Alarm.disable_actions() Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes. See also: AWS API Documentation **Request Syntax** response = alarm.disable_actions() Returns: None Alarm / Attribute / state_transitioned_timestamp state_transitioned_timestamp **************************** CloudWatch.Alarm.state_transitioned_timestamp * *(datetime) --* The date and time that the alarm's "StateValue" most recently changed. Alarm / Attribute / alarm_arn alarm_arn ********* CloudWatch.Alarm.alarm_arn * *(string) --* The Amazon Resource Name (ARN) of the alarm. Alarm / Identifier / name name **** CloudWatch.Alarm.name *(string)* The Alarm's name identifier. This **must** be set. Alarm / Attribute / alarm_name alarm_name ********** CloudWatch.Alarm.alarm_name * *(string) --* The name of the alarm. Alarm / Attribute / state_reason_data state_reason_data ***************** CloudWatch.Alarm.state_reason_data * *(string) --* An explanation for the alarm state, in JSON format. Alarm / Attribute / state_reason state_reason ************ CloudWatch.Alarm.state_reason * *(string) --* An explanation for the alarm state, in text format. Alarm / Action / enable_actions enable_actions ************** CloudWatch.Alarm.enable_actions() Enables the actions for the specified alarms. See also: AWS API Documentation **Request Syntax** response = alarm.enable_actions() Returns: None Alarm / Attribute / state_value state_value *********** CloudWatch.Alarm.state_value * *(string) --* The state value for the alarm. Alarm / Attribute / period period ****** CloudWatch.Alarm.period * *(integer) --* The period, in seconds, over which the statistic is applied. Alarm / Action / reload reload ****** CloudWatch.Alarm.reload() Calls "CloudWatch.Client.describe_alarms()" to update the attributes of the Alarm resource. Note that the load and reload methods are the same method and can be used interchangeably. See also: AWS API Documentation **Request Syntax** alarm.reload() Returns: None Alarm / Attribute / alarm_configuration_updated_timestamp alarm_configuration_updated_timestamp ************************************* CloudWatch.Alarm.alarm_configuration_updated_timestamp * *(datetime) --* The time stamp of the last update to the alarm configuration. Alarm / Attribute / evaluate_low_sample_count_percentile evaluate_low_sample_count_percentile ************************************ CloudWatch.Alarm.evaluate_low_sample_count_percentile * *(string) --* Used only for alarms based on percentiles. If "ignore", the alarm state does not change during periods with too few data points to be statistically significant. If "evaluate" or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. Alarm / Attribute / statistic statistic ********* CloudWatch.Alarm.statistic * *(string) --* The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use "ExtendedStatistic". Alarm / Attribute / alarm_description alarm_description ***************** CloudWatch.Alarm.alarm_description * *(string) --* The description of the alarm. Alarm / Attribute / extended_statistic extended_statistic ****************** CloudWatch.Alarm.extended_statistic * *(string) --* The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. Alarm / Attribute / comparison_operator comparison_operator ******************* CloudWatch.Alarm.comparison_operator * *(string) --* The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. Alarm / Attribute / alarm_actions alarm_actions ************* CloudWatch.Alarm.alarm_actions * *(list) --* The actions to execute when this alarm transitions to the "ALARM" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* Alarm / Attribute / evaluation_state evaluation_state **************** CloudWatch.Alarm.evaluation_state * *(string) --* If the value of this field is "PARTIAL_DATA", the alarm is being evaluated based on only partial data. This happens if the query used for the alarm returns more than 10,000 metrics. For more information, see Create alarms on Metrics Insights queries. Alarm / Attribute / namespace namespace ********* CloudWatch.Alarm.namespace * *(string) --* The namespace of the metric associated with the alarm. Alarm / Action / set_state set_state ********* CloudWatch.Alarm.set_state(**kwargs) Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to "ALARM" sends an SNS message. Metric alarms returns to their actual state quickly, often within seconds. Because the metric alarm state change happens quickly, it is typically only visible in the alarm's **History** tab in the Amazon CloudWatch console or through DescribeAlarmHistory. If you use "SetAlarmState" on a composite alarm, the composite alarm is not guaranteed to return to its actual state. It returns to its actual state only once any of its children alarms change state. It is also reevaluated if you update its configuration. If an alarm triggers EC2 Auto Scaling policies or application Auto Scaling policies, you must include information in the "StateReasonData" parameter to enable the policy to take the correct action. See also: AWS API Documentation **Request Syntax** response = alarm.set_state( StateValue='OK'|'ALARM'|'INSUFFICIENT_DATA', StateReason='string', StateReasonData='string' ) Parameters: * **StateValue** (*string*) -- **[REQUIRED]** The value of the state. * **StateReason** (*string*) -- **[REQUIRED]** The reason that this alarm is set to this specific state, in text format. * **StateReasonData** (*string*) -- The reason that this alarm is set to this specific state, in JSON format. For SNS or EC2 alarm actions, this is just informational. But for EC2 Auto Scaling or application Auto Scaling alarm actions, the Auto Scaling policy uses the information in this field to take the correct action. Returns: None Alarm / Attribute / metrics metrics ******* CloudWatch.Alarm.metrics * *(list) --* An array of MetricDataQuery structures, used in an alarm based on a metric math expression. Each structure either retrieves a metric or performs a math expression. One item in the Metrics array is the math expression that the alarm watches. This expression by designated by having "ReturnData" set to true. * *(dict) --* This structure is used in both "GetMetricData" and "PutMetricAlarm". The supported use of this structure is different for those two operations. When used in "GetMetricData", it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single "GetMetricData" call can include up to 500 "MetricDataQuery" structures. When used in "PutMetricAlarm", it enables you to create an alarm based on a metric math expression. Each "MetricDataQuery" in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single "PutMetricAlarm" call can include up to 20 "MetricDataQuery" structures in the array. The 20 structures can include as many as 10 structures that contain a "MetricStat" parameter to retrieve a metric, and as many as 10 structures that contain the "Expression" parameter to perform a math expression. Of those "Expression" structures, one must have "true" as the value for "ReturnData". The result of this expression is the value the alarm watches. Any expression used in a "PutMetricAlarm" operation must return a single time series. For more information, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Some of the parameters of this structure also have different uses whether you are using this structure in a "GetMetricData" operation or a "PutMetricAlarm" operation. These differences are explained in the following parameter list. * **Id** *(string) --* A short name used to tie this object to the results in the response. This name must be unique within a single call to "GetMetricData". If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. * **MetricStat** *(dict) --* The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. Within one MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Metric** *(dict) --* The metric to return, including the metric name, namespace, and dimensions. * **Namespace** *(string) --* The namespace of the metric. * **MetricName** *(string) --* The name of the metric. This is a required field. * **Dimensions** *(list) --* The dimensions for the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" call that includes a "StorageResolution" of 1 second. If the "StartTime" parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). * Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). * Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). * **Stat** *(string) --* The statistic to return. It can include any CloudWatch statistic or extended statistic. * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, if you omit "Unit" then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. * **Expression** *(string) --* This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data. For more information about Metrics Insights queries, see Metrics Insights query components and syntax in the *Amazon CloudWatch User Guide*. A math expression can use the "Id" of the other metrics or queries to refer to those metrics, and can also use the "Id" of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Within each MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Label** *(string) --* A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default. You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels. * **ReturnData** *(boolean) --* When used in "GetMetricData", this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify "false". If you omit this, the default of "true" is used. When used in "PutMetricAlarm", specify "true" for the one expression result to use as the alarm. For all other metrics and expressions in the same "PutMetricAlarm" operation, specify "ReturnData" as False. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" operation that includes a "StorageResolution of 1 second". * **AccountId** *(string) --* The ID of the account where the metrics are located. If you are performing a "GetMetricData" operation in a monitoring account, use this to specify which account to retrieve this metric from. If you are performing a "PutMetricAlarm" operation, use this to specify which account contains the metric that the alarm is watching. Alarm / Action / delete delete ****** CloudWatch.Alarm.delete() Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation. If you specify any incorrect alarm names, the alarms you specify with correct names are still deleted. Other syntax errors might result in no alarms being deleted. To confirm that alarms were deleted successfully, you can use the DescribeAlarms operation after using "DeleteAlarms". Note: It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the "AlarmRule" of one of the alarms to "false".Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. See also: AWS API Documentation **Request Syntax** response = alarm.delete() Returns: None CloudWatch / Paginator / ListDashboards ListDashboards ************** class CloudWatch.Paginator.ListDashboards paginator = client.get_paginator('list_dashboards') paginate(**kwargs) Creates an iterator that will paginate through responses from "CloudWatch.Client.list_dashboards()". See also: AWS API Documentation **Request Syntax** response_iterator = paginator.paginate( DashboardNamePrefix='string', PaginationConfig={ 'MaxItems': 123, 'StartingToken': 'string' } ) Parameters: * **DashboardNamePrefix** (*string*) -- If you specify this parameter, only the dashboards with names starting with the specified string are listed. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, ".", "-", and "_". * **PaginationConfig** (*dict*) -- A dictionary that provides parameters to control pagination. * **MaxItems** *(integer) --* The total number of items to return. If the total number of items available is more than the value specified in max-items then a "NextToken" will be provided in the output that you can use to resume pagination. * **StartingToken** *(string) --* A token to specify where to start paginating. This is the "NextToken" from a previous response. Return type: dict Returns: **Response Syntax** { 'DashboardEntries': [ { 'DashboardName': 'string', 'DashboardArn': 'string', 'LastModified': datetime(2015, 1, 1), 'Size': 123 }, ], } **Response Structure** * *(dict) --* * **DashboardEntries** *(list) --* The list of matching dashboards. * *(dict) --* Represents a specific dashboard. * **DashboardName** *(string) --* The name of the dashboard. * **DashboardArn** *(string) --* The Amazon Resource Name (ARN) of the dashboard. * **LastModified** *(datetime) --* The time stamp of when the dashboard was last modified, either by an API call or through the console. This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. * **Size** *(integer) --* The size of the dashboard, in bytes. CloudWatch / Paginator / GetMetricData GetMetricData ************* class CloudWatch.Paginator.GetMetricData paginator = client.get_paginator('get_metric_data') paginate(**kwargs) Creates an iterator that will paginate through responses from "CloudWatch.Client.get_metric_data()". See also: AWS API Documentation **Request Syntax** response_iterator = paginator.paginate( MetricDataQueries=[ { 'Id': 'string', 'MetricStat': { 'Metric': { 'Namespace': 'string', 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ] }, 'Period': 123, 'Stat': 'string', 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None' }, 'Expression': 'string', 'Label': 'string', 'ReturnData': True|False, 'Period': 123, 'AccountId': 'string' }, ], StartTime=datetime(2015, 1, 1), EndTime=datetime(2015, 1, 1), ScanBy='TimestampDescending'|'TimestampAscending', LabelOptions={ 'Timezone': 'string' }, PaginationConfig={ 'MaxItems': 123, 'PageSize': 123, 'StartingToken': 'string' } ) Parameters: * **MetricDataQueries** (*list*) -- **[REQUIRED]** The metric queries to be returned. A single "GetMetricData" call can include as many as 500 "MetricDataQuery" structures. Each of these structures can specify either a metric to retrieve, a Metrics Insights query, or a math expression to perform on retrieved data. * *(dict) --* This structure is used in both "GetMetricData" and "PutMetricAlarm". The supported use of this structure is different for those two operations. When used in "GetMetricData", it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single "GetMetricData" call can include up to 500 "MetricDataQuery" structures. When used in "PutMetricAlarm", it enables you to create an alarm based on a metric math expression. Each "MetricDataQuery" in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single "PutMetricAlarm" call can include up to 20 "MetricDataQuery" structures in the array. The 20 structures can include as many as 10 structures that contain a "MetricStat" parameter to retrieve a metric, and as many as 10 structures that contain the "Expression" parameter to perform a math expression. Of those "Expression" structures, one must have "true" as the value for "ReturnData". The result of this expression is the value the alarm watches. Any expression used in a "PutMetricAlarm" operation must return a single time series. For more information, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Some of the parameters of this structure also have different uses whether you are using this structure in a "GetMetricData" operation or a "PutMetricAlarm" operation. These differences are explained in the following parameter list. * **Id** *(string) --* **[REQUIRED]** A short name used to tie this object to the results in the response. This name must be unique within a single call to "GetMetricData". If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. * **MetricStat** *(dict) --* The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. Within one MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Metric** *(dict) --* **[REQUIRED]** The metric to return, including the metric name, namespace, and dimensions. * **Namespace** *(string) --* The namespace of the metric. * **MetricName** *(string) --* The name of the metric. This is a required field. * **Dimensions** *(list) --* The dimensions for the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* **[REQUIRED]** The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" call that includes a "StorageResolution" of 1 second. If the "StartTime" parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). * Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). * Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). * **Stat** *(string) --* **[REQUIRED]** The statistic to return. It can include any CloudWatch statistic or extended statistic. * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, if you omit "Unit" then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. * **Expression** *(string) --* This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data. For more information about Metrics Insights queries, see Metrics Insights query components and syntax in the *Amazon CloudWatch User Guide*. A math expression can use the "Id" of the other metrics or queries to refer to those metrics, and can also use the "Id" of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Within each MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Label** *(string) --* A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default. You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels. * **ReturnData** *(boolean) --* When used in "GetMetricData", this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify "false". If you omit this, the default of "true" is used. When used in "PutMetricAlarm", specify "true" for the one expression result to use as the alarm. For all other metrics and expressions in the same "PutMetricAlarm" operation, specify "ReturnData" as False. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" operation that includes a "StorageResolution of 1 second". * **AccountId** *(string) --* The ID of the account where the metrics are located. If you are performing a "GetMetricData" operation in a monitoring account, use this to specify which account to retrieve this metric from. If you are performing a "PutMetricAlarm" operation, use this to specify which account contains the metric that the alarm is watching. * **StartTime** (*datetime*) -- **[REQUIRED]** The time stamp indicating the earliest data to be returned. The value specified is inclusive; results include data points with the specified time stamp. CloudWatch rounds the specified time stamp as follows: * Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. * Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. * Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. If you set "Period" to 5, 10, 20, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, 20-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15. For better performance, specify "StartTime" and "EndTime" values that align with the value of the metric's "Period" and sync up with the beginning and end of an hour. For example, if the "Period" of a metric is 5 minutes, specifying 12:05 or 12:30 as "StartTime" can get a faster response from CloudWatch than setting 12:07 or 12:29 as the "StartTime". * **EndTime** (*datetime*) -- **[REQUIRED]** The time stamp indicating the latest data to be returned. The value specified is exclusive; results include data points up to the specified time stamp. For better performance, specify "StartTime" and "EndTime" values that align with the value of the metric's "Period" and sync up with the beginning and end of an hour. For example, if the "Period" of a metric is 5 minutes, specifying 12:05 or 12:30 as "EndTime" can get a faster response from CloudWatch than setting 12:07 or 12:29 as the "EndTime". * **ScanBy** (*string*) -- The order in which data points should be returned. "TimestampDescending" returns the newest data first and paginates when the "MaxDatapoints" limit is reached. "TimestampAscending" returns the oldest data first and paginates when the "MaxDatapoints" limit is reached. If you omit this parameter, the default of "TimestampDescending" is used. * **LabelOptions** (*dict*) -- This structure includes the "Timezone" parameter, which you can use to specify your time zone so that the labels of returned data display the correct time for your time zone. * **Timezone** *(string) --* The time zone to use for metric data return in this operation. The format is "+" or "-" followed by four digits. The first two digits indicate the number of hours ahead or behind of UTC, and the final two digits are the number of minutes. For example, +0130 indicates a time zone that is 1 hour and 30 minutes ahead of UTC. The default is +0000. * **PaginationConfig** (*dict*) -- A dictionary that provides parameters to control pagination. * **MaxItems** *(integer) --* The total number of items to return. If the total number of items available is more than the value specified in max-items then a "NextToken" will be provided in the output that you can use to resume pagination. * **PageSize** *(integer) --* The size of each page. * **StartingToken** *(string) --* A token to specify where to start paginating. This is the "NextToken" from a previous response. Return type: dict Returns: **Response Syntax** { 'MetricDataResults': [ { 'Id': 'string', 'Label': 'string', 'Timestamps': [ datetime(2015, 1, 1), ], 'Values': [ 123.0, ], 'StatusCode': 'Complete'|'InternalError'|'PartialData'|'Forbidden', 'Messages': [ { 'Code': 'string', 'Value': 'string' }, ] }, ], 'Messages': [ { 'Code': 'string', 'Value': 'string' }, ] } **Response Structure** * *(dict) --* * **MetricDataResults** *(list) --* The metrics that are returned, including the metric name, namespace, and dimensions. * *(dict) --* A "GetMetricData" call returns an array of "MetricDataResult" structures. Each of these structures includes the data points for that metric, along with the timestamps of those data points and other identifying information. * **Id** *(string) --* The short name you specified to represent this metric. * **Label** *(string) --* The human-readable label associated with the data. * **Timestamps** *(list) --* The timestamps for the data points, formatted in Unix timestamp format. The number of timestamps always matches the number of values and the value for Timestamps[x] is Values[x]. * *(datetime) --* * **Values** *(list) --* The data points for the metric corresponding to "Timestamps". The number of values always matches the number of timestamps and the timestamp for Values[x] is Timestamps[x]. * *(float) --* * **StatusCode** *(string) --* The status of the returned data. "Complete" indicates that all data points in the requested time range were returned. "PartialData" means that an incomplete set of data points were returned. You can use the "NextToken" value that was returned and repeat your request to get more data points. "NextToken" is not returned if you are performing a math expression. "InternalError" indicates that an error occurred. Retry your request using "NextToken", if present. * **Messages** *(list) --* A list of messages with additional information about the data returned. * *(dict) --* A message returned by the >>``<>``<>" "" "" "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQEAYAAAAip..." "" "" "" "6f0d4192-4d42-11e8-82c1-f539a07e0e3b" "" "" The "image/png" setting is intended only for custom HTTP requests. For most use cases, and all actions using an Amazon Web Services SDK, you should use "png". If you specify "image/png", the HTTP response has a content-type set to "image/png", and the body of the response is a PNG image. Return type: dict Returns: **Response Syntax** { 'MetricWidgetImage': b'bytes' } **Response Structure** * *(dict) --* * **MetricWidgetImage** *(bytes) --* The image of the graph, in the output format specified. The output is base64-encoded. CloudWatch / Client / describe_alarms describe_alarms *************** CloudWatch.Client.describe_alarms(**kwargs) Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm state, or a prefix for any action. To use this operation and return information about composite alarms, you must be signed on with the "cloudwatch:DescribeAlarms" permission that is scoped to "*". You can't return information about composite alarms if your "cloudwatch:DescribeAlarms" permission has a narrower scope. See also: AWS API Documentation **Request Syntax** response = client.describe_alarms( AlarmNames=[ 'string', ], AlarmNamePrefix='string', AlarmTypes=[ 'CompositeAlarm'|'MetricAlarm', ], ChildrenOfAlarmName='string', ParentsOfAlarmName='string', StateValue='OK'|'ALARM'|'INSUFFICIENT_DATA', ActionPrefix='string', MaxRecords=123, NextToken='string' ) Parameters: * **AlarmNames** (*list*) -- The names of the alarms to retrieve information about. * *(string) --* * **AlarmNamePrefix** (*string*) -- An alarm name prefix. If you specify this parameter, you receive information about all alarms that have names that start with this prefix. If this parameter is specified, you cannot specify "AlarmNames". * **AlarmTypes** (*list*) -- Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned, even if composite alarms exist in the account. For example, if you omit this parameter or specify "MetricAlarms", the operation returns only a list of metric alarms. It does not return any composite alarms, even if composite alarms exist in the account. If you specify "CompositeAlarms", the operation returns only a list of composite alarms, and does not return any metric alarms. * *(string) --* * **ChildrenOfAlarmName** (*string*) -- If you use this parameter and specify the name of a composite alarm, the operation returns information about the "children" alarms of the alarm you specify. These are the metric alarms and composite alarms referenced in the "AlarmRule" field of the composite alarm that you specify in "ChildrenOfAlarmName". Information about the composite alarm that you name in "ChildrenOfAlarmName" is not returned. If you specify "ChildrenOfAlarmName", you cannot specify any other parameters in the request except for "MaxRecords" and "NextToken". If you do so, you receive a validation error. Note: Only the "Alarm Name", "ARN", "StateValue" (OK/ALARM/INSUFFICIENT_DATA), and "StateUpdatedTimestamp" information are returned by this operation when you use this parameter. To get complete information about these alarms, perform another "DescribeAlarms" operation and specify the parent alarm names in the "AlarmNames" parameter. * **ParentsOfAlarmName** (*string*) -- If you use this parameter and specify the name of a metric or composite alarm, the operation returns information about the "parent" alarms of the alarm you specify. These are the composite alarms that have "AlarmRule" parameters that reference the alarm named in "ParentsOfAlarmName". Information about the alarm that you specify in "ParentsOfAlarmName" is not returned. If you specify "ParentsOfAlarmName", you cannot specify any other parameters in the request except for "MaxRecords" and "NextToken". If you do so, you receive a validation error. Note: Only the Alarm Name and ARN are returned by this operation when you use this parameter. To get complete information about these alarms, perform another "DescribeAlarms" operation and specify the parent alarm names in the "AlarmNames" parameter. * **StateValue** (*string*) -- Specify this parameter to receive information only about alarms that are currently in the state that you specify. * **ActionPrefix** (*string*) -- Use this parameter to filter the results of the operation to only those alarms that use a certain alarm action. For example, you could specify the ARN of an SNS topic to find all alarms that send notifications to that topic. * **MaxRecords** (*integer*) -- The maximum number of alarm descriptions to retrieve. * **NextToken** (*string*) -- The token returned by a previous call to indicate that there is more data available. Return type: dict Returns: **Response Syntax** { 'CompositeAlarms': [ { 'ActionsEnabled': True|False, 'AlarmActions': [ 'string', ], 'AlarmArn': 'string', 'AlarmConfigurationUpdatedTimestamp': datetime(2015, 1, 1), 'AlarmDescription': 'string', 'AlarmName': 'string', 'AlarmRule': 'string', 'InsufficientDataActions': [ 'string', ], 'OKActions': [ 'string', ], 'StateReason': 'string', 'StateReasonData': 'string', 'StateUpdatedTimestamp': datetime(2015, 1, 1), 'StateValue': 'OK'|'ALARM'|'INSUFFICIENT_DATA', 'StateTransitionedTimestamp': datetime(2015, 1, 1), 'ActionsSuppressedBy': 'WaitPeriod'|'ExtensionPeriod'|'Alarm', 'ActionsSuppressedReason': 'string', 'ActionsSuppressor': 'string', 'ActionsSuppressorWaitPeriod': 123, 'ActionsSuppressorExtensionPeriod': 123 }, ], 'MetricAlarms': [ { 'AlarmName': 'string', 'AlarmArn': 'string', 'AlarmDescription': 'string', 'AlarmConfigurationUpdatedTimestamp': datetime(2015, 1, 1), 'ActionsEnabled': True|False, 'OKActions': [ 'string', ], 'AlarmActions': [ 'string', ], 'InsufficientDataActions': [ 'string', ], 'StateValue': 'OK'|'ALARM'|'INSUFFICIENT_DATA', 'StateReason': 'string', 'StateReasonData': 'string', 'StateUpdatedTimestamp': datetime(2015, 1, 1), 'MetricName': 'string', 'Namespace': 'string', 'Statistic': 'SampleCount'|'Average'|'Sum'|'Minimum'|'Maximum', 'ExtendedStatistic': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ], 'Period': 123, 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None', 'EvaluationPeriods': 123, 'DatapointsToAlarm': 123, 'Threshold': 123.0, 'ComparisonOperator': 'GreaterThanOrEqualToThreshold'|'GreaterThanThreshold'|'LessThanThreshold'|'LessThanOrEqualToThreshold'|'LessThanLowerOrGreaterThanUpperThreshold'|'LessThanLowerThreshold'|'GreaterThanUpperThreshold', 'TreatMissingData': 'string', 'EvaluateLowSampleCountPercentile': 'string', 'Metrics': [ { 'Id': 'string', 'MetricStat': { 'Metric': { 'Namespace': 'string', 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ] }, 'Period': 123, 'Stat': 'string', 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None' }, 'Expression': 'string', 'Label': 'string', 'ReturnData': True|False, 'Period': 123, 'AccountId': 'string' }, ], 'ThresholdMetricId': 'string', 'EvaluationState': 'PARTIAL_DATA', 'StateTransitionedTimestamp': datetime(2015, 1, 1) }, ], 'NextToken': 'string' } **Response Structure** * *(dict) --* * **CompositeAlarms** *(list) --* The information about any composite alarms returned by the operation. * *(dict) --* The details about a composite alarm. * **ActionsEnabled** *(boolean) --* Indicates whether actions should be executed during any changes to the alarm state. * **AlarmActions** *(list) --* The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **AlarmArn** *(string) --* The Amazon Resource Name (ARN) of the alarm. * **AlarmConfigurationUpdatedTimestamp** *(datetime) --* The time stamp of the last update to the alarm configuration. * **AlarmDescription** *(string) --* The description of the alarm. * **AlarmName** *(string) --* The name of the alarm. * **AlarmRule** *(string) --* The rule that this alarm uses to evaluate its alarm state. * **InsufficientDataActions** *(list) --* The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **OKActions** *(list) --* The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **StateReason** *(string) --* An explanation for the alarm state, in text format. * **StateReasonData** *(string) --* An explanation for the alarm state, in JSON format. * **StateUpdatedTimestamp** *(datetime) --* Tracks the timestamp of any state update, even if "StateValue" doesn't change. * **StateValue** *(string) --* The state value for the alarm. * **StateTransitionedTimestamp** *(datetime) --* The timestamp of the last change to the alarm's "StateValue". * **ActionsSuppressedBy** *(string) --* When the value is "ALARM", it means that the actions are suppressed because the suppressor alarm is in "ALARM" When the value is "WaitPeriod", it means that the actions are suppressed because the composite alarm is waiting for the suppressor alarm to go into into the "ALARM" state. The maximum waiting time is as specified in "ActionsSuppressorWaitPeriod". After this time, the composite alarm performs its actions. When the value is "ExtensionPeriod", it means that the actions are suppressed because the composite alarm is waiting after the suppressor alarm went out of the "ALARM" state. The maximum waiting time is as specified in "ActionsSuppressorExtensionPeriod". After this time, the composite alarm performs its actions. * **ActionsSuppressedReason** *(string) --* Captures the reason for action suppression. * **ActionsSuppressor** *(string) --* Actions will be suppressed if the suppressor alarm is in the "ALARM" state. "ActionsSuppressor" can be an AlarmName or an Amazon Resource Name (ARN) from an existing alarm. * **ActionsSuppressorWaitPeriod** *(integer) --* The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the "ALARM" state. After this time, the composite alarm performs its actions. Warning: "WaitPeriod" is required only when "ActionsSuppressor" is specified. * **ActionsSuppressorExtensionPeriod** *(integer) --* The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the "ALARM" state. After this time, the composite alarm performs its actions. Warning: "ExtensionPeriod" is required only when "ActionsSuppressor" is specified. * **MetricAlarms** *(list) --* The information about any metric alarms returned by the operation. * *(dict) --* The details about a metric alarm. * **AlarmName** *(string) --* The name of the alarm. * **AlarmArn** *(string) --* The Amazon Resource Name (ARN) of the alarm. * **AlarmDescription** *(string) --* The description of the alarm. * **AlarmConfigurationUpdatedTimestamp** *(datetime) --* The time stamp of the last update to the alarm configuration. * **ActionsEnabled** *(boolean) --* Indicates whether actions should be executed during any changes to the alarm state. * **OKActions** *(list) --* The actions to execute when this alarm transitions to the "OK" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **AlarmActions** *(list) --* The actions to execute when this alarm transitions to the "ALARM" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **InsufficientDataActions** *(list) --* The actions to execute when this alarm transitions to the "INSUFFICIENT_DATA" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **StateValue** *(string) --* The state value for the alarm. * **StateReason** *(string) --* An explanation for the alarm state, in text format. * **StateReasonData** *(string) --* An explanation for the alarm state, in JSON format. * **StateUpdatedTimestamp** *(datetime) --* The time stamp of the last update to the value of either the "StateValue" or "EvaluationState" parameters. * **MetricName** *(string) --* The name of the metric associated with the alarm, if this is an alarm based on a single metric. * **Namespace** *(string) --* The namespace of the metric associated with the alarm. * **Statistic** *(string) --* The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use "ExtendedStatistic". * **ExtendedStatistic** *(string) --* The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. * **Dimensions** *(list) --* The dimensions for the metric associated with the alarm. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* The period, in seconds, over which the statistic is applied. * **Unit** *(string) --* The unit of the metric associated with the alarm. * **EvaluationPeriods** *(integer) --* The number of periods over which data is compared to the specified threshold. * **DatapointsToAlarm** *(integer) --* The number of data points that must be breaching to trigger the alarm. * **Threshold** *(float) --* The value to compare with the specified statistic. * **ComparisonOperator** *(string) --* The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. * **TreatMissingData** *(string) --* Sets how this alarm is to handle missing data points. The valid values are "breaching", "notBreaching", "ignore", and "missing". For more information, see Configuring how CloudWatch alarms treat missing data. If this parameter is omitted, the default behavior of "missing" is used. * **EvaluateLowSampleCountPercentile** *(string) --* Used only for alarms based on percentiles. If "ignore", the alarm state does not change during periods with too few data points to be statistically significant. If "evaluate" or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. * **Metrics** *(list) --* An array of MetricDataQuery structures, used in an alarm based on a metric math expression. Each structure either retrieves a metric or performs a math expression. One item in the Metrics array is the math expression that the alarm watches. This expression by designated by having "ReturnData" set to true. * *(dict) --* This structure is used in both "GetMetricData" and "PutMetricAlarm". The supported use of this structure is different for those two operations. When used in "GetMetricData", it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single "GetMetricData" call can include up to 500 "MetricDataQuery" structures. When used in "PutMetricAlarm", it enables you to create an alarm based on a metric math expression. Each "MetricDataQuery" in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single "PutMetricAlarm" call can include up to 20 "MetricDataQuery" structures in the array. The 20 structures can include as many as 10 structures that contain a "MetricStat" parameter to retrieve a metric, and as many as 10 structures that contain the "Expression" parameter to perform a math expression. Of those "Expression" structures, one must have "true" as the value for "ReturnData". The result of this expression is the value the alarm watches. Any expression used in a "PutMetricAlarm" operation must return a single time series. For more information, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Some of the parameters of this structure also have different uses whether you are using this structure in a "GetMetricData" operation or a "PutMetricAlarm" operation. These differences are explained in the following parameter list. * **Id** *(string) --* A short name used to tie this object to the results in the response. This name must be unique within a single call to "GetMetricData". If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. * **MetricStat** *(dict) --* The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. Within one MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Metric** *(dict) --* The metric to return, including the metric name, namespace, and dimensions. * **Namespace** *(string) --* The namespace of the metric. * **MetricName** *(string) --* The name of the metric. This is a required field. * **Dimensions** *(list) --* The dimensions for the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" call that includes a "StorageResolution" of 1 second. If the "StartTime" parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). * Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). * Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). * **Stat** *(string) --* The statistic to return. It can include any CloudWatch statistic or extended statistic. * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, if you omit "Unit" then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. * **Expression** *(string) --* This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data. For more information about Metrics Insights queries, see Metrics Insights query components and syntax in the *Amazon CloudWatch User Guide*. A math expression can use the "Id" of the other metrics or queries to refer to those metrics, and can also use the "Id" of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Within each MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Label** *(string) --* A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default. You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels. * **ReturnData** *(boolean) --* When used in "GetMetricData", this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify "false". If you omit this, the default of "true" is used. When used in "PutMetricAlarm", specify "true" for the one expression result to use as the alarm. For all other metrics and expressions in the same "PutMetricAlarm" operation, specify "ReturnData" as False. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" operation that includes a "StorageResolution of 1 second". * **AccountId** *(string) --* The ID of the account where the metrics are located. If you are performing a "GetMetricData" operation in a monitoring account, use this to specify which account to retrieve this metric from. If you are performing a "PutMetricAlarm" operation, use this to specify which account contains the metric that the alarm is watching. * **ThresholdMetricId** *(string) --* In an alarm based on an anomaly detection model, this is the ID of the "ANOMALY_DETECTION_BAND" function used as the threshold for the alarm. * **EvaluationState** *(string) --* If the value of this field is "PARTIAL_DATA", the alarm is being evaluated based on only partial data. This happens if the query used for the alarm returns more than 10,000 metrics. For more information, see Create alarms on Metrics Insights queries. * **StateTransitionedTimestamp** *(datetime) --* The date and time that the alarm's "StateValue" most recently changed. * **NextToken** *(string) --* The token that marks the start of the next batch of returned results. **Exceptions** * "CloudWatch.Client.exceptions.InvalidNextToken" CloudWatch / Client / can_paginate can_paginate ************ CloudWatch.Client.can_paginate(operation_name) Check if an operation can be paginated. Parameters: **operation_name** (*string*) -- The operation name. This is the same name as the method name on the client. For example, if the method name is "create_foo", and you'd normally invoke the operation as "client.create_foo(**kwargs)", if the "create_foo" operation can be paginated, you can use the call "client.get_paginator("create_foo")". Returns: "True" if the operation can be paginated, "False" otherwise. CloudWatch / Client / get_dashboard get_dashboard ************* CloudWatch.Client.get_dashboard(**kwargs) Displays the details of the dashboard that you specify. To copy an existing dashboard, use "GetDashboard", and then use the data returned within "DashboardBody" as the template for the new dashboard when you call "PutDashboard" to create the copy. See also: AWS API Documentation **Request Syntax** response = client.get_dashboard( DashboardName='string' ) Parameters: **DashboardName** (*string*) -- **[REQUIRED]** The name of the dashboard to be described. Return type: dict Returns: **Response Syntax** { 'DashboardArn': 'string', 'DashboardBody': 'string', 'DashboardName': 'string' } **Response Structure** * *(dict) --* * **DashboardArn** *(string) --* The Amazon Resource Name (ARN) of the dashboard. * **DashboardBody** *(string) --* The detailed information about the dashboard, including what widgets are included and their location on the dashboard. For more information about the "DashboardBody" syntax, see Dashboard Body Structure and Syntax. * **DashboardName** *(string) --* The name of the dashboard. **Exceptions** * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.DashboardNotFoundError" * "CloudWatch.Client.exceptions.InternalServiceFault" CloudWatch / Client / list_managed_insight_rules list_managed_insight_rules ************************** CloudWatch.Client.list_managed_insight_rules(**kwargs) Returns a list that contains the number of managed Contributor Insights rules in your account. See also: AWS API Documentation **Request Syntax** response = client.list_managed_insight_rules( ResourceARN='string', NextToken='string', MaxResults=123 ) Parameters: * **ResourceARN** (*string*) -- **[REQUIRED]** The ARN of an Amazon Web Services resource that has managed Contributor Insights rules. * **NextToken** (*string*) -- Include this value to get the next set of rules if the value was returned by the previous operation. * **MaxResults** (*integer*) -- The maximum number of results to return in one operation. If you omit this parameter, the default number is used. The default number is "100". Return type: dict Returns: **Response Syntax** { 'ManagedRules': [ { 'TemplateName': 'string', 'ResourceARN': 'string', 'RuleState': { 'RuleName': 'string', 'State': 'string' } }, ], 'NextToken': 'string' } **Response Structure** * *(dict) --* * **ManagedRules** *(list) --* The managed rules that are available for the specified Amazon Web Services resource. * *(dict) --* Contains information about managed Contributor Insights rules, as returned by "ListManagedInsightRules". * **TemplateName** *(string) --* The template name for the managed rule. Used to enable managed rules using "PutManagedInsightRules". * **ResourceARN** *(string) --* If a managed rule is enabled, this is the ARN for the related Amazon Web Services resource. * **RuleState** *(dict) --* Describes the state of a managed rule. If present, it contains information about the Contributor Insights rule that contains information about the related Amazon Web Services resource. * **RuleName** *(string) --* The name of the Contributor Insights rule that contains data for the specified Amazon Web Services resource. * **State** *(string) --* Indicates whether the rule is enabled or disabled. * **NextToken** *(string) --* Include this value to get the next set of rules if the value was returned by the previous operation. **Exceptions** * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" * "CloudWatch.Client.exceptions.InvalidNextToken" CloudWatch / Client / put_anomaly_detector put_anomaly_detector ******************** CloudWatch.Client.put_anomaly_detector(**kwargs) Creates an anomaly detection model for a CloudWatch metric. You can use the model to display a band of expected normal values when the metric is graphed. If you have enabled unified cross-account observability, and this account is a monitoring account, the metric can be in the same account or a source account. You can specify the account ID in the object you specify in the "SingleMetricAnomalyDetector" parameter. For more information, see CloudWatch Anomaly Detection. See also: AWS API Documentation **Request Syntax** response = client.put_anomaly_detector( Namespace='string', MetricName='string', Dimensions=[ { 'Name': 'string', 'Value': 'string' }, ], Stat='string', Configuration={ 'ExcludedTimeRanges': [ { 'StartTime': datetime(2015, 1, 1), 'EndTime': datetime(2015, 1, 1) }, ], 'MetricTimezone': 'string' }, MetricCharacteristics={ 'PeriodicSpikes': True|False }, SingleMetricAnomalyDetector={ 'AccountId': 'string', 'Namespace': 'string', 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ], 'Stat': 'string' }, MetricMathAnomalyDetector={ 'MetricDataQueries': [ { 'Id': 'string', 'MetricStat': { 'Metric': { 'Namespace': 'string', 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ] }, 'Period': 123, 'Stat': 'string', 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None' }, 'Expression': 'string', 'Label': 'string', 'ReturnData': True|False, 'Period': 123, 'AccountId': 'string' }, ] } ) Parameters: * **Namespace** (*string*) -- The namespace of the metric to create the anomaly detection model for. * **MetricName** (*string*) -- The name of the metric to create the anomaly detection model for. * **Dimensions** (*list*) -- The metric dimensions to create the anomaly detection model for. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non- whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non- whitespace character. ASCII control characters are not supported as part of dimension values. * **Stat** (*string*) -- The statistic to use for the metric and the anomaly detection model. * **Configuration** (*dict*) -- The configuration specifies details about how the anomaly detection model is to be trained, including time ranges to exclude when training and updating the model. You can specify as many as 10 time ranges. The configuration can also include the time zone to use for the metric. * **ExcludedTimeRanges** *(list) --* An array of time ranges to exclude from use when the anomaly detection model is trained. Use this to make sure that events that could cause unusual values for the metric, such as deployments, aren't used when CloudWatch creates the model. * *(dict) --* Specifies one range of days or times to exclude from use for training an anomaly detection model. * **StartTime** *(datetime) --* **[REQUIRED]** The start time of the range to exclude. The format is "yyyy-MM-dd'T'HH:mm:ss". For example, "2019-07-01T23:59:59". * **EndTime** *(datetime) --* **[REQUIRED]** The end time of the range to exclude. The format is "yyyy-MM-dd'T'HH:mm:ss". For example, "2019-07-01T23:59:59". * **MetricTimezone** *(string) --* The time zone to use for the metric. This is useful to enable the model to automatically account for daylight savings time changes if the metric is sensitive to such time changes. To specify a time zone, use the name of the time zone as specified in the standard tz database. For more information, see tz database. * **MetricCharacteristics** (*dict*) -- Use this object to include parameters to provide information about your metric to CloudWatch to help it build more accurate anomaly detection models. Currently, it includes the "PeriodicSpikes" parameter. * **PeriodicSpikes** *(boolean) --* Set this parameter to "true" if values for this metric consistently include spikes that should not be considered to be anomalies. With this set to "true", CloudWatch will expect to see spikes that occurred consistently during the model training period, and won't flag future similar spikes as anomalies. * **SingleMetricAnomalyDetector** (*dict*) -- A single metric anomaly detector to be created. When using "SingleMetricAnomalyDetector", you cannot include the following parameters in the same operation: * "Dimensions" * "MetricName" * "Namespace" * "Stat" * the "MetricMathAnomalyDetector" parameters of "PutAnomalyDetectorInput" Instead, specify the single metric anomaly detector attributes as part of the property "SingleMetricAnomalyDetector". * **AccountId** *(string) --* If the CloudWatch metric that provides the time series that the anomaly detector uses as input is in another account, specify that account ID here. If you omit this parameter, the current account is used. * **Namespace** *(string) --* The namespace of the metric to create the anomaly detection model for. * **MetricName** *(string) --* The name of the metric to create the anomaly detection model for. * **Dimensions** *(list) --* The metric dimensions to create the anomaly detection model for. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non- whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Stat** *(string) --* The statistic to use for the metric and anomaly detection model. * **MetricMathAnomalyDetector** (*dict*) -- The metric math anomaly detector to be created. When using "MetricMathAnomalyDetector", you cannot include the following parameters in the same operation: * "Dimensions" * "MetricName" * "Namespace" * "Stat" * the "SingleMetricAnomalyDetector" parameters of "PutAnomalyDetectorInput" Instead, specify the metric math anomaly detector attributes as part of the property "MetricMathAnomalyDetector". * **MetricDataQueries** *(list) --* An array of metric data query structures that enables you to create an anomaly detector based on the result of a metric math expression. Each item in "MetricDataQueries" gets a metric or performs a math expression. One item in "MetricDataQueries" is the expression that provides the time series that the anomaly detector uses as input. Designate the expression by setting "ReturnData" to "true" for this object in the array. For all other expressions and metrics, set "ReturnData" to "false". The designated expression must return a single time series. * *(dict) --* This structure is used in both "GetMetricData" and "PutMetricAlarm". The supported use of this structure is different for those two operations. When used in "GetMetricData", it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single "GetMetricData" call can include up to 500 "MetricDataQuery" structures. When used in "PutMetricAlarm", it enables you to create an alarm based on a metric math expression. Each "MetricDataQuery" in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single "PutMetricAlarm" call can include up to 20 "MetricDataQuery" structures in the array. The 20 structures can include as many as 10 structures that contain a "MetricStat" parameter to retrieve a metric, and as many as 10 structures that contain the "Expression" parameter to perform a math expression. Of those "Expression" structures, one must have "true" as the value for "ReturnData". The result of this expression is the value the alarm watches. Any expression used in a "PutMetricAlarm" operation must return a single time series. For more information, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Some of the parameters of this structure also have different uses whether you are using this structure in a "GetMetricData" operation or a "PutMetricAlarm" operation. These differences are explained in the following parameter list. * **Id** *(string) --* **[REQUIRED]** A short name used to tie this object to the results in the response. This name must be unique within a single call to "GetMetricData". If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. * **MetricStat** *(dict) --* The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. Within one MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Metric** *(dict) --* **[REQUIRED]** The metric to return, including the metric name, namespace, and dimensions. * **Namespace** *(string) --* The namespace of the metric. * **MetricName** *(string) --* The name of the metric. This is a required field. * **Dimensions** *(list) --* The dimensions for the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* **[REQUIRED]** The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" call that includes a "StorageResolution" of 1 second. If the "StartTime" parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). * Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). * Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). * **Stat** *(string) --* **[REQUIRED]** The statistic to return. It can include any CloudWatch statistic or extended statistic. * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, if you omit "Unit" then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. * **Expression** *(string) --* This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data. For more information about Metrics Insights queries, see Metrics Insights query components and syntax in the *Amazon CloudWatch User Guide*. A math expression can use the "Id" of the other metrics or queries to refer to those metrics, and can also use the "Id" of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Within each MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Label** *(string) --* A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default. You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels. * **ReturnData** *(boolean) --* When used in "GetMetricData", this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify "false". If you omit this, the default of "true" is used. When used in "PutMetricAlarm", specify "true" for the one expression result to use as the alarm. For all other metrics and expressions in the same "PutMetricAlarm" operation, specify "ReturnData" as False. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" operation that includes a "StorageResolution of 1 second". * **AccountId** *(string) --* The ID of the account where the metrics are located. If you are performing a "GetMetricData" operation in a monitoring account, use this to specify which account to retrieve this metric from. If you are performing a "PutMetricAlarm" operation, use this to specify which account contains the metric that the alarm is watching. Return type: dict Returns: **Response Syntax** {} **Response Structure** * *(dict) --* **Exceptions** * "CloudWatch.Client.exceptions.LimitExceededException" * "CloudWatch.Client.exceptions.InternalServiceFault" * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" * "CloudWatch.Client.exceptions.InvalidParameterCombinationExcepti on" CloudWatch / Client / put_dashboard put_dashboard ************* CloudWatch.Client.put_dashboard(**kwargs) Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard, the entire contents are replaced with what you specify here. All dashboards in your account are global, not region-specific. A simple way to create a dashboard using "PutDashboard" is to copy an existing dashboard. To copy an existing dashboard using the console, you can load the dashboard and then use the View/edit source command in the Actions menu to display the JSON block for that dashboard. Another way to copy a dashboard is to use "GetDashboard", and then use the data returned within "DashboardBody" as the template for the new dashboard when you call "PutDashboard". When you create a dashboard with "PutDashboard", a good practice is to add a text widget at the top of the dashboard with a message that the dashboard was created by script and should not be changed in the console. This message could also point console users to the location of the "DashboardBody" script or the CloudFormation template used to create the dashboard. See also: AWS API Documentation **Request Syntax** response = client.put_dashboard( DashboardName='string', DashboardBody='string' ) Parameters: * **DashboardName** (*string*) -- **[REQUIRED]** The name of the dashboard. If a dashboard with this name already exists, this call modifies that dashboard, replacing its current contents. Otherwise, a new dashboard is created. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, "-", and "_". This parameter is required. * **DashboardBody** (*string*) -- **[REQUIRED]** The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard. This parameter is required. For more information about the syntax, see Dashboard Body Structure and Syntax. Return type: dict Returns: **Response Syntax** { 'DashboardValidationMessages': [ { 'DataPath': 'string', 'Message': 'string' }, ] } **Response Structure** * *(dict) --* * **DashboardValidationMessages** *(list) --* If the input for "PutDashboard" was correct and the dashboard was successfully created or modified, this result is empty. If this result includes only warning messages, then the input was valid enough for the dashboard to be created or modified, but some elements of the dashboard might not render. If this result includes error messages, the input was not valid and the operation failed. * *(dict) --* An error or warning for the operation. * **DataPath** *(string) --* The data path related to the message. * **Message** *(string) --* A message describing the error or warning. **Exceptions** * "CloudWatch.Client.exceptions.DashboardInvalidInputError" * "CloudWatch.Client.exceptions.InternalServiceFault" * "CloudWatch.Client.exceptions.ConflictException" CloudWatch / Client / describe_alarms_for_metric describe_alarms_for_metric ************************** CloudWatch.Client.describe_alarms_for_metric(**kwargs) Retrieves the alarms for the specified metric. To filter the results, specify a statistic, period, or unit. This operation retrieves only standard alarms that are based on the specified metric. It does not return alarms based on math expressions that use the specified metric, or composite alarms that use the specified metric. See also: AWS API Documentation **Request Syntax** response = client.describe_alarms_for_metric( MetricName='string', Namespace='string', Statistic='SampleCount'|'Average'|'Sum'|'Minimum'|'Maximum', ExtendedStatistic='string', Dimensions=[ { 'Name': 'string', 'Value': 'string' }, ], Period=123, Unit='Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None' ) Parameters: * **MetricName** (*string*) -- **[REQUIRED]** The name of the metric. * **Namespace** (*string*) -- **[REQUIRED]** The namespace of the metric. * **Statistic** (*string*) -- The statistic for the metric, other than percentiles. For percentile statistics, use "ExtendedStatistics". * **ExtendedStatistic** (*string*) -- The percentile statistic for the metric. Specify a value between p0.0 and p100. * **Dimensions** (*list*) -- The dimensions associated with the metric. If the metric has any associated dimensions, you must specify them in order for the call to succeed. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non- whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non- whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** (*integer*) -- The period, in seconds, over which the statistic is applied. * **Unit** (*string*) -- The unit for the metric. Return type: dict Returns: **Response Syntax** { 'MetricAlarms': [ { 'AlarmName': 'string', 'AlarmArn': 'string', 'AlarmDescription': 'string', 'AlarmConfigurationUpdatedTimestamp': datetime(2015, 1, 1), 'ActionsEnabled': True|False, 'OKActions': [ 'string', ], 'AlarmActions': [ 'string', ], 'InsufficientDataActions': [ 'string', ], 'StateValue': 'OK'|'ALARM'|'INSUFFICIENT_DATA', 'StateReason': 'string', 'StateReasonData': 'string', 'StateUpdatedTimestamp': datetime(2015, 1, 1), 'MetricName': 'string', 'Namespace': 'string', 'Statistic': 'SampleCount'|'Average'|'Sum'|'Minimum'|'Maximum', 'ExtendedStatistic': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ], 'Period': 123, 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None', 'EvaluationPeriods': 123, 'DatapointsToAlarm': 123, 'Threshold': 123.0, 'ComparisonOperator': 'GreaterThanOrEqualToThreshold'|'GreaterThanThreshold'|'LessThanThreshold'|'LessThanOrEqualToThreshold'|'LessThanLowerOrGreaterThanUpperThreshold'|'LessThanLowerThreshold'|'GreaterThanUpperThreshold', 'TreatMissingData': 'string', 'EvaluateLowSampleCountPercentile': 'string', 'Metrics': [ { 'Id': 'string', 'MetricStat': { 'Metric': { 'Namespace': 'string', 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ] }, 'Period': 123, 'Stat': 'string', 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None' }, 'Expression': 'string', 'Label': 'string', 'ReturnData': True|False, 'Period': 123, 'AccountId': 'string' }, ], 'ThresholdMetricId': 'string', 'EvaluationState': 'PARTIAL_DATA', 'StateTransitionedTimestamp': datetime(2015, 1, 1) }, ] } **Response Structure** * *(dict) --* * **MetricAlarms** *(list) --* The information for each alarm with the specified metric. * *(dict) --* The details about a metric alarm. * **AlarmName** *(string) --* The name of the alarm. * **AlarmArn** *(string) --* The Amazon Resource Name (ARN) of the alarm. * **AlarmDescription** *(string) --* The description of the alarm. * **AlarmConfigurationUpdatedTimestamp** *(datetime) --* The time stamp of the last update to the alarm configuration. * **ActionsEnabled** *(boolean) --* Indicates whether actions should be executed during any changes to the alarm state. * **OKActions** *(list) --* The actions to execute when this alarm transitions to the "OK" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **AlarmActions** *(list) --* The actions to execute when this alarm transitions to the "ALARM" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **InsufficientDataActions** *(list) --* The actions to execute when this alarm transitions to the "INSUFFICIENT_DATA" state from any other state. Each action is specified as an Amazon Resource Name (ARN). * *(string) --* * **StateValue** *(string) --* The state value for the alarm. * **StateReason** *(string) --* An explanation for the alarm state, in text format. * **StateReasonData** *(string) --* An explanation for the alarm state, in JSON format. * **StateUpdatedTimestamp** *(datetime) --* The time stamp of the last update to the value of either the "StateValue" or "EvaluationState" parameters. * **MetricName** *(string) --* The name of the metric associated with the alarm, if this is an alarm based on a single metric. * **Namespace** *(string) --* The namespace of the metric associated with the alarm. * **Statistic** *(string) --* The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use "ExtendedStatistic". * **ExtendedStatistic** *(string) --* The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. * **Dimensions** *(list) --* The dimensions for the metric associated with the alarm. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* The period, in seconds, over which the statistic is applied. * **Unit** *(string) --* The unit of the metric associated with the alarm. * **EvaluationPeriods** *(integer) --* The number of periods over which data is compared to the specified threshold. * **DatapointsToAlarm** *(integer) --* The number of data points that must be breaching to trigger the alarm. * **Threshold** *(float) --* The value to compare with the specified statistic. * **ComparisonOperator** *(string) --* The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. * **TreatMissingData** *(string) --* Sets how this alarm is to handle missing data points. The valid values are "breaching", "notBreaching", "ignore", and "missing". For more information, see Configuring how CloudWatch alarms treat missing data. If this parameter is omitted, the default behavior of "missing" is used. * **EvaluateLowSampleCountPercentile** *(string) --* Used only for alarms based on percentiles. If "ignore", the alarm state does not change during periods with too few data points to be statistically significant. If "evaluate" or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. * **Metrics** *(list) --* An array of MetricDataQuery structures, used in an alarm based on a metric math expression. Each structure either retrieves a metric or performs a math expression. One item in the Metrics array is the math expression that the alarm watches. This expression by designated by having "ReturnData" set to true. * *(dict) --* This structure is used in both "GetMetricData" and "PutMetricAlarm". The supported use of this structure is different for those two operations. When used in "GetMetricData", it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single "GetMetricData" call can include up to 500 "MetricDataQuery" structures. When used in "PutMetricAlarm", it enables you to create an alarm based on a metric math expression. Each "MetricDataQuery" in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single "PutMetricAlarm" call can include up to 20 "MetricDataQuery" structures in the array. The 20 structures can include as many as 10 structures that contain a "MetricStat" parameter to retrieve a metric, and as many as 10 structures that contain the "Expression" parameter to perform a math expression. Of those "Expression" structures, one must have "true" as the value for "ReturnData". The result of this expression is the value the alarm watches. Any expression used in a "PutMetricAlarm" operation must return a single time series. For more information, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Some of the parameters of this structure also have different uses whether you are using this structure in a "GetMetricData" operation or a "PutMetricAlarm" operation. These differences are explained in the following parameter list. * **Id** *(string) --* A short name used to tie this object to the results in the response. This name must be unique within a single call to "GetMetricData". If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. * **MetricStat** *(dict) --* The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. Within one MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Metric** *(dict) --* The metric to return, including the metric name, namespace, and dimensions. * **Namespace** *(string) --* The namespace of the metric. * **MetricName** *(string) --* The name of the metric. This is a required field. * **Dimensions** *(list) --* The dimensions for the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" call that includes a "StorageResolution" of 1 second. If the "StartTime" parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). * Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). * Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). * **Stat** *(string) --* The statistic to return. It can include any CloudWatch statistic or extended statistic. * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, if you omit "Unit" then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. * **Expression** *(string) --* This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data. For more information about Metrics Insights queries, see Metrics Insights query components and syntax in the *Amazon CloudWatch User Guide*. A math expression can use the "Id" of the other metrics or queries to refer to those metrics, and can also use the "Id" of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Within each MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Label** *(string) --* A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default. You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels. * **ReturnData** *(boolean) --* When used in "GetMetricData", this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify "false". If you omit this, the default of "true" is used. When used in "PutMetricAlarm", specify "true" for the one expression result to use as the alarm. For all other metrics and expressions in the same "PutMetricAlarm" operation, specify "ReturnData" as False. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" operation that includes a "StorageResolution of 1 second". * **AccountId** *(string) --* The ID of the account where the metrics are located. If you are performing a "GetMetricData" operation in a monitoring account, use this to specify which account to retrieve this metric from. If you are performing a "PutMetricAlarm" operation, use this to specify which account contains the metric that the alarm is watching. * **ThresholdMetricId** *(string) --* In an alarm based on an anomaly detection model, this is the ID of the "ANOMALY_DETECTION_BAND" function used as the threshold for the alarm. * **EvaluationState** *(string) --* If the value of this field is "PARTIAL_DATA", the alarm is being evaluated based on only partial data. This happens if the query used for the alarm returns more than 10,000 metrics. For more information, see Create alarms on Metrics Insights queries. * **StateTransitionedTimestamp** *(datetime) --* The date and time that the alarm's "StateValue" most recently changed. CloudWatch / Client / delete_anomaly_detector delete_anomaly_detector *********************** CloudWatch.Client.delete_anomaly_detector(**kwargs) Deletes the specified anomaly detection model from your account. For more information about how to delete an anomaly detection model, see Deleting an anomaly detection model in the *CloudWatch User Guide*. See also: AWS API Documentation **Request Syntax** response = client.delete_anomaly_detector( Namespace='string', MetricName='string', Dimensions=[ { 'Name': 'string', 'Value': 'string' }, ], Stat='string', SingleMetricAnomalyDetector={ 'AccountId': 'string', 'Namespace': 'string', 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ], 'Stat': 'string' }, MetricMathAnomalyDetector={ 'MetricDataQueries': [ { 'Id': 'string', 'MetricStat': { 'Metric': { 'Namespace': 'string', 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ] }, 'Period': 123, 'Stat': 'string', 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None' }, 'Expression': 'string', 'Label': 'string', 'ReturnData': True|False, 'Period': 123, 'AccountId': 'string' }, ] } ) Parameters: * **Namespace** (*string*) -- The namespace associated with the anomaly detection model to delete. * **MetricName** (*string*) -- The metric name associated with the anomaly detection model to delete. * **Dimensions** (*list*) -- The metric dimensions associated with the anomaly detection model to delete. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non- whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non- whitespace character. ASCII control characters are not supported as part of dimension values. * **Stat** (*string*) -- The statistic associated with the anomaly detection model to delete. * **SingleMetricAnomalyDetector** (*dict*) -- A single metric anomaly detector to be deleted. When using "SingleMetricAnomalyDetector", you cannot include the following parameters in the same operation: * "Dimensions", * "MetricName" * "Namespace" * "Stat" * the "MetricMathAnomalyDetector" parameters of "DeleteAnomalyDetectorInput" Instead, specify the single metric anomaly detector attributes as part of the "SingleMetricAnomalyDetector" property. * **AccountId** *(string) --* If the CloudWatch metric that provides the time series that the anomaly detector uses as input is in another account, specify that account ID here. If you omit this parameter, the current account is used. * **Namespace** *(string) --* The namespace of the metric to create the anomaly detection model for. * **MetricName** *(string) --* The name of the metric to create the anomaly detection model for. * **Dimensions** *(list) --* The metric dimensions to create the anomaly detection model for. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non- whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Stat** *(string) --* The statistic to use for the metric and anomaly detection model. * **MetricMathAnomalyDetector** (*dict*) -- The metric math anomaly detector to be deleted. When using "MetricMathAnomalyDetector", you cannot include following parameters in the same operation: * "Dimensions", * "MetricName" * "Namespace" * "Stat" * the "SingleMetricAnomalyDetector" parameters of "DeleteAnomalyDetectorInput" Instead, specify the metric math anomaly detector attributes as part of the "MetricMathAnomalyDetector" property. * **MetricDataQueries** *(list) --* An array of metric data query structures that enables you to create an anomaly detector based on the result of a metric math expression. Each item in "MetricDataQueries" gets a metric or performs a math expression. One item in "MetricDataQueries" is the expression that provides the time series that the anomaly detector uses as input. Designate the expression by setting "ReturnData" to "true" for this object in the array. For all other expressions and metrics, set "ReturnData" to "false". The designated expression must return a single time series. * *(dict) --* This structure is used in both "GetMetricData" and "PutMetricAlarm". The supported use of this structure is different for those two operations. When used in "GetMetricData", it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single "GetMetricData" call can include up to 500 "MetricDataQuery" structures. When used in "PutMetricAlarm", it enables you to create an alarm based on a metric math expression. Each "MetricDataQuery" in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single "PutMetricAlarm" call can include up to 20 "MetricDataQuery" structures in the array. The 20 structures can include as many as 10 structures that contain a "MetricStat" parameter to retrieve a metric, and as many as 10 structures that contain the "Expression" parameter to perform a math expression. Of those "Expression" structures, one must have "true" as the value for "ReturnData". The result of this expression is the value the alarm watches. Any expression used in a "PutMetricAlarm" operation must return a single time series. For more information, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Some of the parameters of this structure also have different uses whether you are using this structure in a "GetMetricData" operation or a "PutMetricAlarm" operation. These differences are explained in the following parameter list. * **Id** *(string) --* **[REQUIRED]** A short name used to tie this object to the results in the response. This name must be unique within a single call to "GetMetricData". If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. * **MetricStat** *(dict) --* The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. Within one MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Metric** *(dict) --* **[REQUIRED]** The metric to return, including the metric name, namespace, and dimensions. * **Namespace** *(string) --* The namespace of the metric. * **MetricName** *(string) --* The name of the metric. This is a required field. * **Dimensions** *(list) --* The dimensions for the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* **[REQUIRED]** The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" call that includes a "StorageResolution" of 1 second. If the "StartTime" parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). * Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). * Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). * **Stat** *(string) --* **[REQUIRED]** The statistic to return. It can include any CloudWatch statistic or extended statistic. * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, if you omit "Unit" then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. * **Expression** *(string) --* This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data. For more information about Metrics Insights queries, see Metrics Insights query components and syntax in the *Amazon CloudWatch User Guide*. A math expression can use the "Id" of the other metrics or queries to refer to those metrics, and can also use the "Id" of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Within each MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Label** *(string) --* A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default. You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels. * **ReturnData** *(boolean) --* When used in "GetMetricData", this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify "false". If you omit this, the default of "true" is used. When used in "PutMetricAlarm", specify "true" for the one expression result to use as the alarm. For all other metrics and expressions in the same "PutMetricAlarm" operation, specify "ReturnData" as False. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" operation that includes a "StorageResolution of 1 second". * **AccountId** *(string) --* The ID of the account where the metrics are located. If you are performing a "GetMetricData" operation in a monitoring account, use this to specify which account to retrieve this metric from. If you are performing a "PutMetricAlarm" operation, use this to specify which account contains the metric that the alarm is watching. Return type: dict Returns: **Response Syntax** {} **Response Structure** * *(dict) --* **Exceptions** * "CloudWatch.Client.exceptions.ResourceNotFoundException" * "CloudWatch.Client.exceptions.InternalServiceFault" * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" * "CloudWatch.Client.exceptions.InvalidParameterCombinationExcepti on" CloudWatch / Client / enable_alarm_actions enable_alarm_actions ******************** CloudWatch.Client.enable_alarm_actions(**kwargs) Enables the actions for the specified alarms. See also: AWS API Documentation **Request Syntax** response = client.enable_alarm_actions( AlarmNames=[ 'string', ] ) Parameters: **AlarmNames** (*list*) -- **[REQUIRED]** The names of the alarms. * *(string) --* Returns: None CloudWatch / Client / list_tags_for_resource list_tags_for_resource ********************** CloudWatch.Client.list_tags_for_resource(**kwargs) Displays the tags associated with a CloudWatch resource. Currently, alarms and Contributor Insights rules support tagging. See also: AWS API Documentation **Request Syntax** response = client.list_tags_for_resource( ResourceARN='string' ) Parameters: **ResourceARN** (*string*) -- **[REQUIRED]** The ARN of the CloudWatch resource that you want to view tags for. The ARN format of an alarm is "arn:aws:cloudwatch:Region :account-id:alarm:alarm-name" The ARN format of a Contributor Insights rule is "arn:aws:cloudwatch:Region:account-id:insight-rule/insight-rule- name" For more information about ARN format, see Resource Types Defined by Amazon CloudWatch in the *Amazon Web Services General Reference*. Return type: dict Returns: **Response Syntax** { 'Tags': [ { 'Key': 'string', 'Value': 'string' }, ] } **Response Structure** * *(dict) --* * **Tags** *(list) --* The list of tag keys and values associated with the resource you specified. * *(dict) --* A key-value pair associated with a CloudWatch resource. * **Key** *(string) --* A string that you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources. * **Value** *(string) --* The value for the specified tag key. **Exceptions** * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.ResourceNotFoundException" * "CloudWatch.Client.exceptions.InternalServiceFault" CloudWatch / Client / delete_alarms delete_alarms ************* CloudWatch.Client.delete_alarms(**kwargs) Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation. If you specify any incorrect alarm names, the alarms you specify with correct names are still deleted. Other syntax errors might result in no alarms being deleted. To confirm that alarms were deleted successfully, you can use the DescribeAlarms operation after using "DeleteAlarms". Note: It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the "AlarmRule" of one of the alarms to "false".Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. See also: AWS API Documentation **Request Syntax** response = client.delete_alarms( AlarmNames=[ 'string', ] ) Parameters: **AlarmNames** (*list*) -- **[REQUIRED]** The alarms to be deleted. Do not enclose the alarm names in quote marks. * *(string) --* Returns: None **Exceptions** * "CloudWatch.Client.exceptions.ResourceNotFound" CloudWatch / Client / delete_dashboards delete_dashboards ***************** CloudWatch.Client.delete_dashboards(**kwargs) Deletes all dashboards that you specify. You can specify up to 100 dashboards to delete. If there is an error during this call, no dashboards are deleted. See also: AWS API Documentation **Request Syntax** response = client.delete_dashboards( DashboardNames=[ 'string', ] ) Parameters: **DashboardNames** (*list*) -- **[REQUIRED]** The dashboards to be deleted. This parameter is required. * *(string) --* Return type: dict Returns: **Response Syntax** {} **Response Structure** * *(dict) --* **Exceptions** * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.DashboardNotFoundError" * "CloudWatch.Client.exceptions.InternalServiceFault" * "CloudWatch.Client.exceptions.ConflictException" CloudWatch / Client / untag_resource untag_resource ************** CloudWatch.Client.untag_resource(**kwargs) Removes one or more tags from the specified resource. See also: AWS API Documentation **Request Syntax** response = client.untag_resource( ResourceARN='string', TagKeys=[ 'string', ] ) Parameters: * **ResourceARN** (*string*) -- **[REQUIRED]** The ARN of the CloudWatch resource that you're removing tags from. The ARN format of an alarm is "arn:aws:cloudwatch:Region :account-id:alarm:alarm-name" The ARN format of a Contributor Insights rule is "arn:aws:cloudwatch:Region:account-id:insight-rule/insight- rule-name" For more information about ARN format, see Resource Types Defined by Amazon CloudWatch in the *Amazon Web Services General Reference*. * **TagKeys** (*list*) -- **[REQUIRED]** The list of tag keys to remove from the resource. * *(string) --* Return type: dict Returns: **Response Syntax** {} **Response Structure** * *(dict) --* **Exceptions** * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.ResourceNotFoundException" * "CloudWatch.Client.exceptions.ConcurrentModificationException" * "CloudWatch.Client.exceptions.InternalServiceFault" * "CloudWatch.Client.exceptions.ConflictException" CloudWatch / Client / put_metric_data put_metric_data *************** CloudWatch.Client.put_metric_data(**kwargs) Publishes metric data to Amazon CloudWatch. CloudWatch associates the data with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics. You can publish metrics with associated entity data (so that related telemetry can be found and viewed together), or publish metric data by itself. To send entity data with your metrics, use the "EntityMetricData" parameter. To send metrics without entity data, use the "MetricData" parameter. The "EntityMetricData" structure includes "MetricData" structures for the metric data. You can publish either individual values in the "Value" field, or arrays of values and the number of times each value occurred during the period by using the "Values" and "Counts" fields in the "MetricData" structure. Using the "Values" and "Counts" method enables you to publish up to 150 values per metric with one "PutMetricData" request, and supports retrieving percentile statistics on this data. Each "PutMetricData" request is limited to 1 MB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 1000 different metrics (across both the "MetricData" and "EntityMetricData" properties). Although the "Value" parameter accepts numbers of type "Double", CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. You can use up to 30 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the *Amazon CloudWatch User Guide*. You specify the time stamp to be associated with each data point. You can specify time stamps that are as much as two weeks before the current date, and as much as 2 hours after the current day and time. Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for GetMetricData or GetMetricStatistics. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: * The "SampleCount" value of the statistic set is 1 and "Min", "Max", and "Sum" are all equal. * The "Min" and "Max" are equal, and "Sum" is equal to "Min" multiplied by "SampleCount". See also: AWS API Documentation **Request Syntax** response = client.put_metric_data( Namespace='string', MetricData=[ { 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ], 'Timestamp': datetime(2015, 1, 1), 'Value': 123.0, 'StatisticValues': { 'SampleCount': 123.0, 'Sum': 123.0, 'Minimum': 123.0, 'Maximum': 123.0 }, 'Values': [ 123.0, ], 'Counts': [ 123.0, ], 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None', 'StorageResolution': 123 }, ], EntityMetricData=[ { 'Entity': { 'KeyAttributes': { 'string': 'string' }, 'Attributes': { 'string': 'string' } }, 'MetricData': [ { 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ], 'Timestamp': datetime(2015, 1, 1), 'Value': 123.0, 'StatisticValues': { 'SampleCount': 123.0, 'Sum': 123.0, 'Minimum': 123.0, 'Maximum': 123.0 }, 'Values': [ 123.0, ], 'Counts': [ 123.0, ], 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None', 'StorageResolution': 123 }, ] }, ], StrictEntityValidation=True|False ) Parameters: * **Namespace** (*string*) -- **[REQUIRED]** The namespace for the metric data. You can use ASCII characters for the namespace, except for control characters which are not supported. To avoid conflicts with Amazon Web Services service namespaces, you should not specify a namespace that begins with "AWS/" * **MetricData** (*list*) -- The data for the metrics. Use this parameter if your metrics do not contain associated entities. The array can include no more than 1000 metrics per call. The limit of metrics allowed, 1000, is the sum of both "EntityMetricData" and "MetricData" metrics. * *(dict) --* Encapsulates the information sent to either create a metric or add new values to be aggregated into an existing metric. * **MetricName** *(string) --* **[REQUIRED]** The name of the metric. * **Dimensions** *(list) --* The dimensions associated with the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Timestamp** *(datetime) --* The time the metric data was received, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. * **Value** *(float) --* The value for the metric. Although the parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. * **StatisticValues** *(dict) --* The statistical values for the metric. * **SampleCount** *(float) --* **[REQUIRED]** The number of samples used for the statistic set. * **Sum** *(float) --* **[REQUIRED]** The sum of values for the sample set. * **Minimum** *(float) --* **[REQUIRED]** The minimum value of the sample set. * **Maximum** *(float) --* **[REQUIRED]** The maximum value of the sample set. * **Values** *(list) --* Array of numbers representing the values for the metric during the period. Each unique value is listed just once in this array, and the corresponding number in the "Counts" array specifies the number of times that value occurred during the period. You can include up to 150 unique values in each "PutMetricData" action that specifies a "Values" array. Although the "Values" array accepts numbers of type "Double", CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. * *(float) --* * **Counts** *(list) --* Array of numbers that is used along with the "Values" array. Each number in the "Count" array is the number of times the corresponding value in the "Values" array occurred during the period. If you omit the "Counts" array, the default of 1 is used as the value for each count. If you include a "Counts" array, it must include the same amount of values as the "Values" array. * *(float) --* * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, this displays the unit that is used for the metric. * **StorageResolution** *(integer) --* Valid values are 1 and 60. Setting this to 1 specifies this metric as a high-resolution metric, so that CloudWatch stores the metric with sub-minute resolution down to one second. Setting this to 60 specifies this metric as a regular-resolution metric, which CloudWatch stores at 1-minute resolution. Currently, high resolution is available only for custom metrics. For more information about high-resolution metrics, see High-Resolution Metrics in the *Amazon CloudWatch User Guide*. This field is optional, if you do not specify it the default of 60 is used. * **EntityMetricData** (*list*) -- Data for metrics that contain associated entity information. You can include up to two "EntityMetricData" objects, each of which can contain a single "Entity" and associated metrics. The limit of metrics allowed, 1000, is the sum of both "EntityMetricData" and "MetricData" metrics. * *(dict) --* A set of metrics that are associated with an entity, such as a specific service or resource. Contains the entity and the list of metric data associated with it. * **Entity** *(dict) --* The entity associated with the metrics. * **KeyAttributes** *(dict) --* The attributes of the entity which identify the specific entity, as a list of key-value pairs. Entities with the same "KeyAttributes" are considered to be the same entity. For an entity to be valid, the "KeyAttributes" must exist and be formatted correctly. There are five allowed attributes (key names): "Type", "ResourceType", "Identifier", "Name", and "Environment". For details about how to use the key attributes to specify an entity, see How to add related information to telemetry in the *CloudWatch User Guide*. * *(string) --* * *(string) --* * **Attributes** *(dict) --* Additional attributes of the entity that are not used to specify the identity of the entity. A list of key-value pairs. For details about how to use the attributes, see How to add related information to telemetry in the *CloudWatch User Guide*. * *(string) --* * *(string) --* * **MetricData** *(list) --* The metric data. * *(dict) --* Encapsulates the information sent to either create a metric or add new values to be aggregated into an existing metric. * **MetricName** *(string) --* **[REQUIRED]** The name of the metric. * **Dimensions** *(list) --* The dimensions associated with the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Timestamp** *(datetime) --* The time the metric data was received, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. * **Value** *(float) --* The value for the metric. Although the parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. * **StatisticValues** *(dict) --* The statistical values for the metric. * **SampleCount** *(float) --* **[REQUIRED]** The number of samples used for the statistic set. * **Sum** *(float) --* **[REQUIRED]** The sum of values for the sample set. * **Minimum** *(float) --* **[REQUIRED]** The minimum value of the sample set. * **Maximum** *(float) --* **[REQUIRED]** The maximum value of the sample set. * **Values** *(list) --* Array of numbers representing the values for the metric during the period. Each unique value is listed just once in this array, and the corresponding number in the "Counts" array specifies the number of times that value occurred during the period. You can include up to 150 unique values in each "PutMetricData" action that specifies a "Values" array. Although the "Values" array accepts numbers of type "Double", CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. * *(float) --* * **Counts** *(list) --* Array of numbers that is used along with the "Values" array. Each number in the "Count" array is the number of times the corresponding value in the "Values" array occurred during the period. If you omit the "Counts" array, the default of 1 is used as the value for each count. If you include a "Counts" array, it must include the same amount of values as the "Values" array. * *(float) --* * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, this displays the unit that is used for the metric. * **StorageResolution** *(integer) --* Valid values are 1 and 60. Setting this to 1 specifies this metric as a high-resolution metric, so that CloudWatch stores the metric with sub-minute resolution down to one second. Setting this to 60 specifies this metric as a regular-resolution metric, which CloudWatch stores at 1-minute resolution. Currently, high resolution is available only for custom metrics. For more information about high- resolution metrics, see High-Resolution Metrics in the *Amazon CloudWatch User Guide*. This field is optional, if you do not specify it the default of 60 is used. * **StrictEntityValidation** (*boolean*) -- Whether to accept valid metric data when an invalid entity is sent. * When set to "true": Any validation error (for entity or metric data) will fail the entire request, and no data will be ingested. The failed operation will return a 400 result with the error. * When set to "false": Validation errors in the entity will not associate the metric with the entity, but the metric data will still be accepted and ingested. Validation errors in the metric data will fail the entire request, and no data will be ingested. In the case of an invalid entity, the operation will return a "200" status, but an additional response header will contain information about the validation errors. The new header, "X-Amzn-Failure-Message" is an enumeration of the following values: * "InvalidEntity" - The provided entity is invalid. * "InvalidKeyAttributes" - The provided "KeyAttributes" of an entity is invalid. * "InvalidAttributes" - The provided "Attributes" of an entity is invalid. * "InvalidTypeValue" - The provided "Type" in the "KeyAttributes" of an entity is invalid. * "EntitySizeTooLarge" - The number of "EntityMetricData" objects allowed is 2. * "MissingRequiredFields" - There are missing required fields in the "KeyAttributes" for the provided "Type". For details of the requirements for specifying an entity, see How to add related information to telemetry in the *CloudWatch User Guide*. This parameter is *required* when "EntityMetricData" is included. Returns: None **Exceptions** * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" * "CloudWatch.Client.exceptions.InvalidParameterCombinationExcepti on" * "CloudWatch.Client.exceptions.InternalServiceFault" CloudWatch / Client / put_metric_stream put_metric_stream ***************** CloudWatch.Client.put_metric_stream(**kwargs) Creates or updates a metric stream. Metric streams can automatically stream CloudWatch metrics to Amazon Web Services destinations, including Amazon S3, and to many third-party solutions. For more information, see Using Metric Streams. To create a metric stream, you must be signed in to an account that has the "iam:PassRole" permission and either the "CloudWatchFullAccess" policy or the "cloudwatch:PutMetricStream" permission. When you create or update a metric stream, you choose one of the following: * Stream metrics from all metric namespaces in the account. * Stream metrics from all metric namespaces in the account, except for the namespaces that you list in "ExcludeFilters". * Stream metrics from only the metric namespaces that you list in "IncludeFilters". By default, a metric stream always sends the "MAX", "MIN", "SUM", and "SAMPLECOUNT" statistics for each metric that is streamed. You can use the "StatisticsConfigurations" parameter to have the metric stream send additional statistics in the stream. Streaming additional statistics incurs additional costs. For more information, see Amazon CloudWatch Pricing. When you use "PutMetricStream" to create a new metric stream, the stream is created in the "running" state. If you use it to update an existing stream, the state of the stream is not changed. If you are using CloudWatch cross-account observability and you create a metric stream in a monitoring account, you can choose whether to include metrics from source accounts in the stream. For more information, see CloudWatch cross-account observability. See also: AWS API Documentation **Request Syntax** response = client.put_metric_stream( Name='string', IncludeFilters=[ { 'Namespace': 'string', 'MetricNames': [ 'string', ] }, ], ExcludeFilters=[ { 'Namespace': 'string', 'MetricNames': [ 'string', ] }, ], FirehoseArn='string', RoleArn='string', OutputFormat='json'|'opentelemetry0.7'|'opentelemetry1.0', Tags=[ { 'Key': 'string', 'Value': 'string' }, ], StatisticsConfigurations=[ { 'IncludeMetrics': [ { 'Namespace': 'string', 'MetricName': 'string' }, ], 'AdditionalStatistics': [ 'string', ] }, ], IncludeLinkedAccountsMetrics=True|False ) Parameters: * **Name** (*string*) -- **[REQUIRED]** If you are creating a new metric stream, this is the name for the new stream. The name must be different than the names of other metric streams in this account and Region. If you are updating a metric stream, specify the name of that stream here. Valid characters are A-Z, a-z, 0-9, "-" and "_". * **IncludeFilters** (*list*) -- If you specify this parameter, the stream sends only the metrics from the metric namespaces that you specify here. You cannot include "IncludeFilters" and "ExcludeFilters" in the same operation. * *(dict) --* This structure contains a metric namespace and optionally, a list of metric names, to either include in a metric stream or exclude from a metric stream. A metric stream's filters can include up to 1000 total names. This limit applies to the sum of namespace names and metric names in the filters. For example, this could include 10 metric namespace filters with 99 metrics each, or 20 namespace filters with 49 metrics specified in each filter. * **Namespace** *(string) --* The name of the metric namespace for this filter. The namespace can contain only ASCII printable characters (ASCII range 32 through 126). It must contain at least one non-whitespace character. * **MetricNames** *(list) --* The names of the metrics to either include or exclude from the metric stream. If you omit this parameter, all metrics in the namespace are included or excluded, depending on whether this filter is specified as an exclude filter or an include filter. Each metric name can contain only ASCII printable characters (ASCII range 32 through 126). Each metric name must contain at least one non-whitespace character. * *(string) --* * **ExcludeFilters** (*list*) -- If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces that you specify here. You cannot include "ExcludeFilters" and "IncludeFilters" in the same operation. * *(dict) --* This structure contains a metric namespace and optionally, a list of metric names, to either include in a metric stream or exclude from a metric stream. A metric stream's filters can include up to 1000 total names. This limit applies to the sum of namespace names and metric names in the filters. For example, this could include 10 metric namespace filters with 99 metrics each, or 20 namespace filters with 49 metrics specified in each filter. * **Namespace** *(string) --* The name of the metric namespace for this filter. The namespace can contain only ASCII printable characters (ASCII range 32 through 126). It must contain at least one non-whitespace character. * **MetricNames** *(list) --* The names of the metrics to either include or exclude from the metric stream. If you omit this parameter, all metrics in the namespace are included or excluded, depending on whether this filter is specified as an exclude filter or an include filter. Each metric name can contain only ASCII printable characters (ASCII range 32 through 126). Each metric name must contain at least one non-whitespace character. * *(string) --* * **FirehoseArn** (*string*) -- **[REQUIRED]** The ARN of the Amazon Kinesis Data Firehose delivery stream to use for this metric stream. This Amazon Kinesis Data Firehose delivery stream must already exist and must be in the same account as the metric stream. * **RoleArn** (*string*) -- **[REQUIRED]** The ARN of an IAM role that this metric stream will use to access Amazon Kinesis Data Firehose resources. This IAM role must already exist and must be in the same account as the metric stream. This IAM role must include the following permissions: * firehose:PutRecord * firehose:PutRecordBatch * **OutputFormat** (*string*) -- **[REQUIRED]** The output format for the stream. Valid values are "json", "opentelemetry1.0", and "opentelemetry0.7". For more information about metric stream output formats, see Metric streams output formats. * **Tags** (*list*) -- A list of key-value pairs to associate with the metric stream. You can associate as many as 50 tags with a metric stream. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. You can use this parameter only when you are creating a new metric stream. If you are using this operation to update an existing metric stream, any tags you specify in this parameter are ignored. To change the tags of an existing metric stream, use TagResource or UntagResource. * *(dict) --* A key-value pair associated with a CloudWatch resource. * **Key** *(string) --* **[REQUIRED]** A string that you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources. * **Value** *(string) --* **[REQUIRED]** The value for the specified tag key. * **StatisticsConfigurations** (*list*) -- By default, a metric stream always sends the "MAX", "MIN", "SUM", and "SAMPLECOUNT" statistics for each metric that is streamed. You can use this parameter to have the metric stream also send additional statistics in the stream. This array can have up to 100 members. For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's "OutputFormat". If the "OutputFormat" is "json", you can stream any additional statistic that is supported by CloudWatch, listed in CloudWatch statistics definitions. If the "OutputFormat" is "opentelemetry1.0" or "opentelemetry0.7", you can stream percentile statistics such as p95, p99.9, and so on. * *(dict) --* By default, a metric stream always sends the "MAX", "MIN", "SUM", and "SAMPLECOUNT" statistics for each metric that is streamed. This structure contains information for one metric that includes additional statistics in the stream. For more information about statistics, see CloudWatch, listed in CloudWatch statistics definitions. * **IncludeMetrics** *(list) --* **[REQUIRED]** An array of metric name and namespace pairs that stream the additional statistics listed in the value of the "AdditionalStatistics" parameter. There can be as many as 100 pairs in the array. All metrics that match the combination of metric name and namespace will be streamed with the additional statistics, no matter their dimensions. * *(dict) --* This object contains the information for one metric that is to be streamed with additional statistics. * **Namespace** *(string) --* **[REQUIRED]** The namespace of the metric. * **MetricName** *(string) --* **[REQUIRED]** The name of the metric. * **AdditionalStatistics** *(list) --* **[REQUIRED]** The list of additional statistics that are to be streamed for the metrics listed in the "IncludeMetrics" array in this structure. This list can include as many as 20 statistics. If the "OutputFormat" for the stream is "opentelemetry1.0" or "opentelemetry0.7", the only valid values are "p??" percentile statistics such as "p90", "p99" and so on. If the "OutputFormat" for the stream is "json", the valid values include the abbreviations for all of the statistics listed in CloudWatch statistics definitions. For example, this includes "tm98," "wm90", "PR(:300)", and so on. * *(string) --* * **IncludeLinkedAccountsMetrics** (*boolean*) -- If you are creating a metric stream in a monitoring account, specify "true" to include metrics from source accounts in the metric stream. Return type: dict Returns: **Response Syntax** { 'Arn': 'string' } **Response Structure** * *(dict) --* * **Arn** *(string) --* The ARN of the metric stream. **Exceptions** * "CloudWatch.Client.exceptions.ConcurrentModificationException" * "CloudWatch.Client.exceptions.InternalServiceFault" * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" * "CloudWatch.Client.exceptions.InvalidParameterCombinationExcepti on" CloudWatch / Client / get_waiter get_waiter ********** CloudWatch.Client.get_waiter(waiter_name) Returns an object that can wait for some condition. Parameters: **waiter_name** (*str*) -- The name of the waiter to get. See the waiters section of the service docs for a list of available waiters. Returns: The specified waiter object. Return type: "botocore.waiter.Waiter" CloudWatch / Client / set_alarm_state set_alarm_state *************** CloudWatch.Client.set_alarm_state(**kwargs) Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to "ALARM" sends an SNS message. Metric alarms returns to their actual state quickly, often within seconds. Because the metric alarm state change happens quickly, it is typically only visible in the alarm's **History** tab in the Amazon CloudWatch console or through DescribeAlarmHistory. If you use "SetAlarmState" on a composite alarm, the composite alarm is not guaranteed to return to its actual state. It returns to its actual state only once any of its children alarms change state. It is also reevaluated if you update its configuration. If an alarm triggers EC2 Auto Scaling policies or application Auto Scaling policies, you must include information in the "StateReasonData" parameter to enable the policy to take the correct action. See also: AWS API Documentation **Request Syntax** response = client.set_alarm_state( AlarmName='string', StateValue='OK'|'ALARM'|'INSUFFICIENT_DATA', StateReason='string', StateReasonData='string' ) Parameters: * **AlarmName** (*string*) -- **[REQUIRED]** The name of the alarm. * **StateValue** (*string*) -- **[REQUIRED]** The value of the state. * **StateReason** (*string*) -- **[REQUIRED]** The reason that this alarm is set to this specific state, in text format. * **StateReasonData** (*string*) -- The reason that this alarm is set to this specific state, in JSON format. For SNS or EC2 alarm actions, this is just informational. But for EC2 Auto Scaling or application Auto Scaling alarm actions, the Auto Scaling policy uses the information in this field to take the correct action. Returns: None **Exceptions** * "CloudWatch.Client.exceptions.ResourceNotFound" * "CloudWatch.Client.exceptions.InvalidFormatFault" CloudWatch / Client / enable_insight_rules enable_insight_rules ******************** CloudWatch.Client.enable_insight_rules(**kwargs) Enables the specified Contributor Insights rules. When rules are enabled, they immediately begin analyzing log data. See also: AWS API Documentation **Request Syntax** response = client.enable_insight_rules( RuleNames=[ 'string', ] ) Parameters: **RuleNames** (*list*) -- **[REQUIRED]** An array of the rule names to enable. If you need to find out the names of your rules, use DescribeInsightRules. * *(string) --* Return type: dict Returns: **Response Syntax** { 'Failures': [ { 'FailureResource': 'string', 'ExceptionType': 'string', 'FailureCode': 'string', 'FailureDescription': 'string' }, ] } **Response Structure** * *(dict) --* * **Failures** *(list) --* An array listing the rules that could not be enabled. You cannot disable or enable built-in rules. * *(dict) --* This array is empty if the API operation was successful for all the rules specified in the request. If the operation could not process one of the rules, the following data is returned for each of those rules. * **FailureResource** *(string) --* The specified rule that could not be deleted. * **ExceptionType** *(string) --* The type of error. * **FailureCode** *(string) --* The code of the error. * **FailureDescription** *(string) --* A description of the error. **Exceptions** * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" * "CloudWatch.Client.exceptions.LimitExceededException" CloudWatch / Client / get_metric_statistics get_metric_statistics ********************* CloudWatch.Client.get_metric_statistics(**kwargs) Gets statistics for the specified metric. The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. Data points are not returned in chronological order. CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: * The SampleCount value of the statistic set is 1. * The Min and the Max values of the statistic set are equal. Percentile statistics are not available for metrics when any of the metric values are negative numbers. Amazon CloudWatch retains metric data as follows: * Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a "StorageResolution" of 1. * Data points with a period of 60 seconds (1-minute) are available for 15 days. * Data points with a period of 300 seconds (5-minute) are available for 63 days. * Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016. For information about metrics and dimensions supported by Amazon Web Services services, see the Amazon CloudWatch Metrics and Dimensions Reference in the *Amazon CloudWatch User Guide*. See also: AWS API Documentation **Request Syntax** response = client.get_metric_statistics( Namespace='string', MetricName='string', Dimensions=[ { 'Name': 'string', 'Value': 'string' }, ], StartTime=datetime(2015, 1, 1), EndTime=datetime(2015, 1, 1), Period=123, Statistics=[ 'SampleCount'|'Average'|'Sum'|'Minimum'|'Maximum', ], ExtendedStatistics=[ 'string', ], Unit='Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None' ) Parameters: * **Namespace** (*string*) -- **[REQUIRED]** The namespace of the metric, with or without spaces. * **MetricName** (*string*) -- **[REQUIRED]** The name of the metric, with or without spaces. * **Dimensions** (*list*) -- The dimensions. If the metric contains multiple dimensions, you must include a value for each dimension. CloudWatch treats each unique combination of dimensions as a separate metric. If a specific combination of dimensions was not published, you can't retrieve statistics for it. You must specify the same dimensions that were used when the metrics were created. For an example, see Dimension Combinations in the *Amazon CloudWatch User Guide*. For more information about specifying dimensions, see Publishing Metrics in the *Amazon CloudWatch User Guide*. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non- whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non- whitespace character. ASCII control characters are not supported as part of dimension values. * **StartTime** (*datetime*) -- **[REQUIRED]** The time stamp that determines the first data point to return. Start times are evaluated relative to the time that CloudWatch receives the request. The value specified is inclusive; results include data points with the specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z). CloudWatch rounds the specified time stamp as follows: * Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. * Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. * Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. If you set "Period" to 5, 10, 20, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, 20-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15. * **EndTime** (*datetime*) -- **[REQUIRED]** The time stamp that determines the last data point to return. The value specified is exclusive; results include data points up to the specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z). * **Period** (*integer*) -- **[REQUIRED]** The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" call that includes a "StorageResolution" of 1 second. If the "StartTime" parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). * Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). * Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). * **Statistics** (*list*) -- The metric statistics, other than percentile. For percentile statistics, use "ExtendedStatistics". When calling "GetMetricStatistics", you must specify either "Statistics" or "ExtendedStatistics", but not both. * *(string) --* * **ExtendedStatistics** (*list*) -- The percentile statistics. Specify values between p0.0 and p100. When calling "GetMetricStatistics", you must specify either "Statistics" or "ExtendedStatistics", but not both. Percentile statistics are not available for metrics when any of the metric values are negative numbers. * *(string) --* * **Unit** (*string*) -- The unit for a given metric. If you omit "Unit", all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. Return type: dict Returns: **Response Syntax** { 'Label': 'string', 'Datapoints': [ { 'Timestamp': datetime(2015, 1, 1), 'SampleCount': 123.0, 'Average': 123.0, 'Sum': 123.0, 'Minimum': 123.0, 'Maximum': 123.0, 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None', 'ExtendedStatistics': { 'string': 123.0 } }, ] } **Response Structure** * *(dict) --* * **Label** *(string) --* A label for the specified metric. * **Datapoints** *(list) --* The data points for the specified metric. * *(dict) --* Encapsulates the statistical data that CloudWatch computes from metric data. * **Timestamp** *(datetime) --* The time stamp used for the data point. * **SampleCount** *(float) --* The number of metric values that contributed to the aggregate value of this data point. * **Average** *(float) --* The average of the metric values that correspond to the data point. * **Sum** *(float) --* The sum of the metric values for the data point. * **Minimum** *(float) --* The minimum metric value for the data point. * **Maximum** *(float) --* The maximum metric value for the data point. * **Unit** *(string) --* The standard unit for the data point. * **ExtendedStatistics** *(dict) --* The percentile statistic for the data point. * *(string) --* * *(float) --* **Exceptions** * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" * "CloudWatch.Client.exceptions.InvalidParameterCombinationExcepti on" * "CloudWatch.Client.exceptions.InternalServiceFault" CloudWatch / Client / describe_alarm_history describe_alarm_history ********************** CloudWatch.Client.describe_alarm_history(**kwargs) Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for either all metric alarms or all composite alarms are returned. CloudWatch retains the history of an alarm even if you delete the alarm. To use this operation and return information about a composite alarm, you must be signed on with the "cloudwatch:DescribeAlarmHistory" permission that is scoped to "*". You can't return information about composite alarms if your "cloudwatch:DescribeAlarmHistory" permission has a narrower scope. See also: AWS API Documentation **Request Syntax** response = client.describe_alarm_history( AlarmName='string', AlarmTypes=[ 'CompositeAlarm'|'MetricAlarm', ], HistoryItemType='ConfigurationUpdate'|'StateUpdate'|'Action', StartDate=datetime(2015, 1, 1), EndDate=datetime(2015, 1, 1), MaxRecords=123, NextToken='string', ScanBy='TimestampDescending'|'TimestampAscending' ) Parameters: * **AlarmName** (*string*) -- The name of the alarm. * **AlarmTypes** (*list*) -- Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned. * *(string) --* * **HistoryItemType** (*string*) -- The type of alarm histories to retrieve. * **StartDate** (*datetime*) -- The starting date to retrieve alarm history. * **EndDate** (*datetime*) -- The ending date to retrieve alarm history. * **MaxRecords** (*integer*) -- The maximum number of alarm history records to retrieve. * **NextToken** (*string*) -- The token returned by a previous call to indicate that there is more data available. * **ScanBy** (*string*) -- Specified whether to return the newest or oldest alarm history first. Specify "TimestampDescending" to have the newest event history returned first, and specify "TimestampAscending" to have the oldest history returned first. Return type: dict Returns: **Response Syntax** { 'AlarmHistoryItems': [ { 'AlarmName': 'string', 'AlarmType': 'CompositeAlarm'|'MetricAlarm', 'Timestamp': datetime(2015, 1, 1), 'HistoryItemType': 'ConfigurationUpdate'|'StateUpdate'|'Action', 'HistorySummary': 'string', 'HistoryData': 'string' }, ], 'NextToken': 'string' } **Response Structure** * *(dict) --* * **AlarmHistoryItems** *(list) --* The alarm histories, in JSON format. * *(dict) --* Represents the history of a specific alarm. * **AlarmName** *(string) --* The descriptive name for the alarm. * **AlarmType** *(string) --* The type of alarm, either metric alarm or composite alarm. * **Timestamp** *(datetime) --* The time stamp for the alarm history item. * **HistoryItemType** *(string) --* The type of alarm history item. * **HistorySummary** *(string) --* A summary of the alarm history, in text format. * **HistoryData** *(string) --* Data about the alarm, in JSON format. * **NextToken** *(string) --* The token that marks the start of the next batch of returned results. **Exceptions** * "CloudWatch.Client.exceptions.InvalidNextToken" CloudWatch / Client / stop_metric_streams stop_metric_streams ******************* CloudWatch.Client.stop_metric_streams(**kwargs) Stops the streaming of metrics for one or more of your metric streams. See also: AWS API Documentation **Request Syntax** response = client.stop_metric_streams( Names=[ 'string', ] ) Parameters: **Names** (*list*) -- **[REQUIRED]** The array of the names of metric streams to stop streaming. This is an "all or nothing" operation. If you do not have permission to access all of the metric streams that you list here, then none of the streams that you list in the operation will stop streaming. * *(string) --* Return type: dict Returns: **Response Syntax** {} **Response Structure** * *(dict) --* **Exceptions** * "CloudWatch.Client.exceptions.InternalServiceFault" * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" CloudWatch / Client / delete_metric_stream delete_metric_stream ******************** CloudWatch.Client.delete_metric_stream(**kwargs) Permanently deletes the metric stream that you specify. See also: AWS API Documentation **Request Syntax** response = client.delete_metric_stream( Name='string' ) Parameters: **Name** (*string*) -- **[REQUIRED]** The name of the metric stream to delete. Return type: dict Returns: **Response Syntax** {} **Response Structure** * *(dict) --* **Exceptions** * "CloudWatch.Client.exceptions.InternalServiceFault" * "CloudWatch.Client.exceptions.InvalidParameterValueException" * "CloudWatch.Client.exceptions.MissingRequiredParameterException" CloudWatch / Client / disable_alarm_actions disable_alarm_actions ********************* CloudWatch.Client.disable_alarm_actions(**kwargs) Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes. See also: AWS API Documentation **Request Syntax** response = client.disable_alarm_actions( AlarmNames=[ 'string', ] ) Parameters: **AlarmNames** (*list*) -- **[REQUIRED]** The names of the alarms. * *(string) --* Returns: None CloudWatch / Client / get_metric_data get_metric_data *************** CloudWatch.Client.get_metric_data(**kwargs) You can use the "GetMetricData" API to retrieve CloudWatch metric values. The operation can also include a CloudWatch Metrics Insights query, and one or more metric math functions. A "GetMetricData" operation that does not include a query can retrieve as many as 500 different metrics in a single request, with a total of as many as 100,800 data points. You can also optionally perform metric math expressions on the values of the returned statistics, to create new time series that represent new insights into your data. For example, using Lambda metrics, you could divide the Errors metric by the Invocations metric to get an error rate time series. For more information about metric math expressions, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. If you include a Metrics Insights query, each "GetMetricData" operation can include only one query. But the same "GetMetricData" operation can also retrieve other metrics. Metrics Insights queries can query only the most recent three hours of metric data. For more information about Metrics Insights, see Query your metrics with CloudWatch Metrics Insights. Calls to the "GetMetricData" API have a different pricing structure than calls to "GetMetricStatistics". For more information about pricing, see Amazon CloudWatch Pricing. Amazon CloudWatch retains metric data as follows: * Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a "StorageResolution" of 1. * Data points with a period of 60 seconds (1-minute) are available for 15 days. * Data points with a period of 300 seconds (5-minute) are available for 63 days. * Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. If you omit "Unit" in your request, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. **Using Metrics Insights queries with metric math** You can't mix a Metric Insights query and metric math syntax in the same expression, but you can reference results from a Metrics Insights query within other Metric math expressions. A Metrics Insights query without a **GROUP BY** clause returns a single time- series (TS), and can be used as input for a metric math expression that expects a single time series. A Metrics Insights query with a **GROUP BY** clause returns an array of time-series (TS[]), and can be used as input for a metric math expression that expects an array of time series. See also: AWS API Documentation **Request Syntax** response = client.get_metric_data( MetricDataQueries=[ { 'Id': 'string', 'MetricStat': { 'Metric': { 'Namespace': 'string', 'MetricName': 'string', 'Dimensions': [ { 'Name': 'string', 'Value': 'string' }, ] }, 'Period': 123, 'Stat': 'string', 'Unit': 'Seconds'|'Microseconds'|'Milliseconds'|'Bytes'|'Kilobytes'|'Megabytes'|'Gigabytes'|'Terabytes'|'Bits'|'Kilobits'|'Megabits'|'Gigabits'|'Terabits'|'Percent'|'Count'|'Bytes/Second'|'Kilobytes/Second'|'Megabytes/Second'|'Gigabytes/Second'|'Terabytes/Second'|'Bits/Second'|'Kilobits/Second'|'Megabits/Second'|'Gigabits/Second'|'Terabits/Second'|'Count/Second'|'None' }, 'Expression': 'string', 'Label': 'string', 'ReturnData': True|False, 'Period': 123, 'AccountId': 'string' }, ], StartTime=datetime(2015, 1, 1), EndTime=datetime(2015, 1, 1), NextToken='string', ScanBy='TimestampDescending'|'TimestampAscending', MaxDatapoints=123, LabelOptions={ 'Timezone': 'string' } ) Parameters: * **MetricDataQueries** (*list*) -- **[REQUIRED]** The metric queries to be returned. A single "GetMetricData" call can include as many as 500 "MetricDataQuery" structures. Each of these structures can specify either a metric to retrieve, a Metrics Insights query, or a math expression to perform on retrieved data. * *(dict) --* This structure is used in both "GetMetricData" and "PutMetricAlarm". The supported use of this structure is different for those two operations. When used in "GetMetricData", it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single "GetMetricData" call can include up to 500 "MetricDataQuery" structures. When used in "PutMetricAlarm", it enables you to create an alarm based on a metric math expression. Each "MetricDataQuery" in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single "PutMetricAlarm" call can include up to 20 "MetricDataQuery" structures in the array. The 20 structures can include as many as 10 structures that contain a "MetricStat" parameter to retrieve a metric, and as many as 10 structures that contain the "Expression" parameter to perform a math expression. Of those "Expression" structures, one must have "true" as the value for "ReturnData". The result of this expression is the value the alarm watches. Any expression used in a "PutMetricAlarm" operation must return a single time series. For more information, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Some of the parameters of this structure also have different uses whether you are using this structure in a "GetMetricData" operation or a "PutMetricAlarm" operation. These differences are explained in the following parameter list. * **Id** *(string) --* **[REQUIRED]** A short name used to tie this object to the results in the response. This name must be unique within a single call to "GetMetricData". If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. * **MetricStat** *(dict) --* The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. Within one MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Metric** *(dict) --* **[REQUIRED]** The metric to return, including the metric name, namespace, and dimensions. * **Namespace** *(string) --* The namespace of the metric. * **MetricName** *(string) --* The name of the metric. This is a required field. * **Dimensions** *(list) --* The dimensions for the metric. * *(dict) --* A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish "InstanceId" as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric. * **Name** *(string) --* **[REQUIRED]** The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon ( ":"). ASCII control characters are not supported as part of dimension names. * **Value** *(string) --* **[REQUIRED]** The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values. * **Period** *(integer) --* **[REQUIRED]** The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" call that includes a "StorageResolution" of 1 second. If the "StartTime" parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). * Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). * Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). * **Stat** *(string) --* **[REQUIRED]** The statistic to return. It can include any CloudWatch statistic or extended statistic. * **Unit** *(string) --* When you are using a "Put" operation, this defines what unit you want to use when storing the metric. In a "Get" operation, if you omit "Unit" then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. * **Expression** *(string) --* This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data. For more information about Metrics Insights queries, see Metrics Insights query components and syntax in the *Amazon CloudWatch User Guide*. A math expression can use the "Id" of the other metrics or queries to refer to those metrics, and can also use the "Id" of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the *Amazon CloudWatch User Guide*. Within each MetricDataQuery object, you must specify either "Expression" or "MetricStat" but not both. * **Label** *(string) --* A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default. You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels. * **ReturnData** *(boolean) --* When used in "GetMetricData", this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify "false". If you omit this, the default of "true" is used. When used in "PutMetricAlarm", specify "true" for the one expression result to use as the alarm. For all other metrics and expressions in the same "PutMetricAlarm" operation, specify "ReturnData" as False. * **Period** *(integer) --* The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 20, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a "PutMetricData" operation that includes a "StorageResolution of 1 second". * **AccountId** *(string) --* The ID of the account where the metrics are located. If you are performing a "GetMetricData" operation in a monitoring account, use this to specify which account to retrieve this metric from. If you are performing a "PutMetricAlarm" operation, use this to specify which account contains the metric that the alarm is watching. * **StartTime** (*datetime*) -- **[REQUIRED]** The time stamp indicating the earliest data to be returned. The value specified is inclusive; results include data points with the specified time stamp. CloudWatch rounds the specified time stamp as follows: * Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. * Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. * Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. If you set "Period" to 5, 10, 20, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, 20-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15. For better performance, specify "StartTime" and "EndTime" values that align with the value of the metric's "Period" and sync up with the beginning and end of an hour. For example, if the "Period" of a metric is 5 minutes, specifying 12:05 or 12:30 as "StartTime" can get a faster response from CloudWatch than setting 12:07 or 12:29 as the "StartTime". * **EndTime** (*datetime*) -- **[REQUIRED]** The time stamp indicating the latest data to be returned. The value specified is exclusive; results include data points up to the specified time stamp. For better performance, specify "StartTime" and "EndTime" values that align with the value of the metric's "Period" and sync up with the beginning and end of an hour. For example, if the "Period" of a metric is 5 minutes, specifying 12:05 or 12:30 as "EndTime" can get a faster response from CloudWatch than setting 12:07 or 12:29 as the "EndTime". * **NextToken** (*string*) -- Include this value, if it was returned by the previous "GetMetricData" operation, to get the next set of data points. * **ScanBy** (*string*) -- The order in which data points should be returned. "TimestampDescending" returns the newest data first and paginates when the "MaxDatapoints" limit is reached. "TimestampAscending" returns the oldest data first and paginates when the "MaxDatapoints" limit is reached. If you omit this parameter, the default of "TimestampDescending" is used. * **MaxDatapoints** (*integer*) -- The maximum number of data points the request should return before paginating. If you omit this, the default of 100,800 is used. * **LabelOptions** (*dict*) -- This structure includes the "Timezone" parameter, which you can use to specify your time zone so that the labels of returned data display the correct time for your time zone. * **Timezone** *(string) --* The time zone to use for metric data return in this operation. The format is "+" or "-" followed by four digits. The first two digits indicate the number of hours ahead or behind of UTC, and the final two digits are the number of minutes. For example, +0130 indicates a time zone that is 1 hour and 30 minutes ahead of UTC. The default is +0000. Return type: dict Returns: **Response Syntax** { 'MetricDataResults': [ { 'Id': 'string', 'Label': 'string', 'Timestamps': [ datetime(2015, 1, 1), ], 'Values': [ 123.0, ], 'StatusCode': 'Complete'|'InternalError'|'PartialData'|'Forbidden', 'Messages': [ { 'Code': 'string', 'Value': 'string' }, ] }, ], 'NextToken': 'string', 'Messages': [ { 'Code': 'string', 'Value': 'string' }, ] } **Response Structure** * *(dict) --* * **MetricDataResults** *(list) --* The metrics that are returned, including the metric name, namespace, and dimensions. * *(dict) --* A "GetMetricData" call returns an array of "MetricDataResult" structures. Each of these structures includes the data points for that metric, along with the timestamps of those data points and other identifying information. * **Id** *(string) --* The short name you specified to represent this metric. * **Label** *(string) --* The human-readable label associated with the data. * **Timestamps** *(list) --* The timestamps for the data points, formatted in Unix timestamp format. The number of timestamps always matches the number of values and the value for Timestamps[x] is Values[x]. * *(datetime) --* * **Values** *(list) --* The data points for the metric corresponding to "Timestamps". The number of values always matches the number of timestamps and the timestamp for Values[x] is Timestamps[x]. * *(float) --* * **StatusCode** *(string) --* The status of the returned data. "Complete" indicates that all data points in the requested time range were returned. "PartialData" means that an incomplete set of data points were returned. You can use the "NextToken" value that was returned and repeat your request to get more data points. "NextToken" is not returned if you are performing a math expression. "InternalError" indicates that an error occurred. Retry your request using "NextToken", if present. * **Messages** *(list) --* A list of messages with additional information about the data returned. * *(dict) --* A message returned by the >>``<>``<