Class: Aws::CloudWatch::Alarm
- Inherits:
-
Object
- Object
- Aws::CloudWatch::Alarm
- Extended by:
- Deprecations
- Defined in:
- lib/aws-sdk-cloudwatch/alarm.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#actions_enabled ⇒ Boolean
Indicates whether actions should be executed during any changes to the alarm state.
-
#alarm_actions ⇒ Array<String>
The actions to execute when this alarm transitions to the ‘ALARM` state from any other state.
-
#alarm_arn ⇒ String
The Amazon Resource Name (ARN) of the alarm.
-
#alarm_configuration_updated_timestamp ⇒ Time
The time stamp of the last update to the alarm configuration.
-
#alarm_description ⇒ String
The description of the alarm.
-
#comparison_operator ⇒ String
The arithmetic operation to use when comparing the specified statistic and threshold.
-
#datapoints_to_alarm ⇒ Integer
The number of datapoints that must be breaching to trigger the alarm.
-
#dimensions ⇒ Array<Types::Dimension>
The dimensions for the metric associated with the alarm.
-
#evaluate_low_sample_count_percentile ⇒ String
Used only for alarms based on percentiles.
-
#evaluation_periods ⇒ Integer
The number of periods over which data is compared to the specified threshold.
-
#extended_statistic ⇒ String
The percentile statistic for the metric associated with the alarm.
-
#insufficient_data_actions ⇒ Array<String>
The actions to execute when this alarm transitions to the ‘INSUFFICIENT_DATA` state from any other state.
-
#metric_name ⇒ String
The name of the metric associated with the alarm.
- #metrics ⇒ Array<Types::MetricDataQuery>
- #name ⇒ String (also: #alarm_name)
-
#namespace ⇒ String
The namespace of the metric associated with the alarm.
-
#ok_actions ⇒ Array<String>
The actions to execute when this alarm transitions to the ‘OK` state from any other state.
-
#period ⇒ Integer
The period, in seconds, over which the statistic is applied.
-
#state_reason ⇒ String
An explanation for the alarm state, in text format.
-
#state_reason_data ⇒ String
An explanation for the alarm state, in JSON format.
-
#state_updated_timestamp ⇒ Time
The time stamp of the last update to the alarm state.
-
#state_value ⇒ String
The state value for the alarm.
-
#statistic ⇒ String
The statistic for the metric associated with the alarm, other than percentile.
-
#threshold ⇒ Float
The value to compare with the specified statistic.
-
#treat_missing_data ⇒ String
Sets how this alarm is to handle missing data points.
-
#unit ⇒ String
The unit of the metric associated with the alarm.
Actions collapse
- #delete(options = {}) ⇒ EmptyStructure
- #describe_history(options = {}) ⇒ Types::DescribeAlarmHistoryOutput
- #disable_actions(options = {}) ⇒ EmptyStructure
- #enable_actions(options = {}) ⇒ EmptyStructure
- #set_state(options = {}) ⇒ EmptyStructure
Associations collapse
- #identifiers ⇒ Object deprecated private Deprecated.
- #metric ⇒ Metric?
Instance Method Summary collapse
- #client ⇒ Client
-
#data ⇒ Types::MetricAlarm
Returns the data for this Alarm.
-
#data_loaded? ⇒ Boolean
Returns ‘true` if this resource is loaded.
-
#exists?(options = {}) ⇒ Boolean
Returns ‘true` if the Alarm exists.
-
#initialize(*args) ⇒ Alarm
constructor
A new instance of Alarm.
- #load ⇒ self (also: #reload)
-
#wait_until(options = {}, &block) ⇒ Resource
deprecated
Deprecated.
Use [Aws::CloudWatch::Client] #wait_until instead
- #wait_until_exists(options = {}) ⇒ Alarm
Constructor Details
#initialize(name, options = {}) ⇒ Alarm #initialize(options = {}) ⇒ Alarm
Returns a new instance of Alarm.
19 20 21 22 23 24 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 19 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @name = extract_name(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() end |
Instance Method Details
#actions_enabled ⇒ Boolean
Indicates whether actions should be executed during any changes to the alarm state.
55 56 57 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 55 def actions_enabled data[:actions_enabled] end |
#alarm_actions ⇒ Array<String>
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).
71 72 73 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 71 def alarm_actions data[:alarm_actions] end |
#alarm_arn ⇒ String
The Amazon Resource Name (ARN) of the alarm.
36 37 38 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 36 def alarm_arn data[:alarm_arn] end |
#alarm_configuration_updated_timestamp ⇒ Time
The time stamp of the last update to the alarm configuration.
48 49 50 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 48 def data[:alarm_configuration_updated_timestamp] end |
#alarm_description ⇒ String
The description of the alarm.
42 43 44 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 42 def alarm_description data[:alarm_description] end |
#client ⇒ Client
204 205 206 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 204 def client @client end |
#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.
174 175 176 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 174 def comparison_operator data[:comparison_operator] end |
#data ⇒ Types::MetricAlarm
Returns the data for this Aws::CloudWatch::Alarm. Calls Client#describe_alarms if #data_loaded? is ‘false`.
224 225 226 227 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 224 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
232 233 234 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 232 def data_loaded? !!@data end |
#datapoints_to_alarm ⇒ Integer
The number of datapoints that must be breaching to trigger the alarm.
160 161 162 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 160 def datapoints_to_alarm data[:datapoints_to_alarm] end |
#delete(options = {}) ⇒ EmptyStructure
369 370 371 372 373 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 369 def delete( = {}) = Aws::Util.deep_merge(, alarm_names: [@name]) resp = @client.delete_alarms() resp.data end |
#describe_history(options = {}) ⇒ Types::DescribeAlarmHistoryOutput
397 398 399 400 401 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 397 def describe_history( = {}) = .merge(alarm_name: @name) resp = @client.describe_alarm_history() resp.data end |
#dimensions ⇒ Array<Types::Dimension>
The dimensions for the metric associated with the alarm.
135 136 137 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 135 def dimensions data[:dimensions] end |
#disable_actions(options = {}) ⇒ EmptyStructure
408 409 410 411 412 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 408 def disable_actions( = {}) = Aws::Util.deep_merge(, alarm_names: [@name]) resp = @client.disable_alarm_actions() resp.data end |
#enable_actions(options = {}) ⇒ EmptyStructure
419 420 421 422 423 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 419 def enable_actions( = {}) = Aws::Util.deep_merge(, alarm_names: [@name]) resp = @client.enable_alarm_actions() resp.data end |
#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.
191 192 193 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 191 def evaluate_low_sample_count_percentile data[:evaluate_low_sample_count_percentile] end |
#evaluation_periods ⇒ Integer
The number of periods over which data is compared to the specified threshold.
154 155 156 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 154 def evaluation_periods data[:evaluation_periods] end |
#exists?(options = {}) ⇒ Boolean
Returns ‘true` if the Alarm exists.
239 240 241 242 243 244 245 246 247 248 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 239 def exists?( = {}) begin wait_until_exists(.merge(max_attempts: 1)) true rescue Aws::Waiters::Errors::UnexpectedError => e raise e.error rescue Aws::Waiters::Errors::WaiterFailed false end end |
#extended_statistic ⇒ String
The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100.
129 130 131 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 129 def extended_statistic data[:extended_statistic] end |
#identifiers ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
465 466 467 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 465 def identifiers { name: @name } end |
#insufficient_data_actions ⇒ Array<String>
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).
79 80 81 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 79 def insufficient_data_actions data[:insufficient_data_actions] end |
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::CloudWatch::Alarm. Returns ‘self` making it possible to chain methods.
alarm.reload.data
214 215 216 217 218 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 214 def load resp = @client.describe_alarms(alarm_names: [@name]) @data = resp.metric_alarms[0] self end |
#metric ⇒ Metric?
451 452 453 454 455 456 457 458 459 460 461 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 451 def metric if data[:namespace] && data[:metric_name] Metric.new( namespace: data[:namespace], name: data[:metric_name], client: @client ) else nil end end |
#metric_name ⇒ String
The name of the metric associated with the alarm.
109 110 111 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 109 def metric_name data[:metric_name] end |
#metrics ⇒ Array<Types::MetricDataQuery>
197 198 199 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 197 def metrics data[:metrics] end |
#name ⇒ String Also known as: alarm_name
29 30 31 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 29 def name @name end |
#namespace ⇒ String
The namespace of the metric associated with the alarm.
115 116 117 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 115 def namespace data[:namespace] end |
#ok_actions ⇒ Array<String>
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).
63 64 65 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 63 def ok_actions data[:ok_actions] end |
#period ⇒ Integer
The period, in seconds, over which the statistic is applied.
141 142 143 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 141 def period data[:period] end |
#set_state(options = {}) ⇒ EmptyStructure
442 443 444 445 446 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 442 def set_state( = {}) = .merge(alarm_name: @name) resp = @client.set_alarm_state() resp.data end |
#state_reason ⇒ String
An explanation for the alarm state, in text format.
91 92 93 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 91 def state_reason data[:state_reason] end |
#state_reason_data ⇒ String
An explanation for the alarm state, in JSON format.
97 98 99 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 97 def state_reason_data data[:state_reason_data] end |
#state_updated_timestamp ⇒ Time
The time stamp of the last update to the alarm state.
103 104 105 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 103 def data[:state_updated_timestamp] end |
#state_value ⇒ String
The state value for the alarm.
85 86 87 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 85 def state_value data[:state_value] end |
#statistic ⇒ String
The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ‘ExtendedStatistic`.
122 123 124 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 122 def statistic data[:statistic] end |
#threshold ⇒ Float
The value to compare with the specified statistic.
166 167 168 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 166 def threshold data[:threshold] end |
#treat_missing_data ⇒ String
Sets how this alarm is to handle missing data points. If this parameter is omitted, the default behavior of ‘missing` is used.
181 182 183 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 181 def treat_missing_data data[:treat_missing_data] end |
#unit ⇒ String
The unit of the metric associated with the alarm.
147 148 149 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 147 def unit data[:unit] end |
#wait_until(options = {}, &block) ⇒ Resource
Use [Aws::CloudWatch::Client] #wait_until instead
The waiting operation is performed on a copy. The original resource remains unchanged
Waiter polls an API operation until a resource enters a desired state.
## Basic Usage
Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop until condition is true
resource.wait_until() {|resource| condition}
## Example
instance.wait_until(max_attempts:10, delay:5) {|instance| instance.state.name == 'running' }
## Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to #wait_until:
# poll for ~25 seconds
resource.wait_until(max_attempts:5,delay:5) {|resource|...}
## Callbacks
You can be notified before each polling attempt and before each delay. If you throw ‘:success` or `:failure` from these callbacks, it will terminate the waiter.
started_at = Time.now
# poll for 1 hour, instead of a number of attempts
proc = Proc.new do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
# disable max attempts
instance.wait_until(before_wait:proc, max_attempts:nil) {...}
## Handling Errors
When a waiter is successful, it returns the Resource. When a waiter fails, it raises an error.
begin
resource.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
attempts attempt in seconds invoked before each attempt invoked before each wait
345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 345 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Waiters::Waiter.new().wait({}) end |
#wait_until_exists(options = {}) ⇒ Alarm
256 257 258 259 260 261 262 263 264 265 |
# File 'lib/aws-sdk-cloudwatch/alarm.rb', line 256 def wait_until_exists( = {}) , params = () waiter = Waiters::AlarmExists.new() yield_waiter_and_warn(waiter, &Proc.new) if block_given? waiter.wait(params.merge(alarm_names: [@name])) Alarm.new({ name: @name, client: @client }) end |