Class: Aws::CloudWatch::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/aws-sdk-cloudwatch/resource.rb

Overview

This class provides a resource oriented interface for CloudWatch. To create a resource object:

resource = Aws::CloudWatch::Resource.new(region: 'us-west-2')

You can supply a client object with custom configuration that will be used for all resource operations. If you do not pass ‘:client`, a default client will be constructed.

client = Aws::CloudWatch::Client.new(region: 'us-west-2')
resource = Aws::CloudWatch::Resource.new(client: client)

Associations collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Resource

Returns a new instance of Resource.

Parameters:

  • options ({}) (defaults to: {})

Options Hash (options):



27
28
29
# File 'lib/aws-sdk-cloudwatch/resource.rb', line 27

def initialize(options = {})
  @client = options[:client] || Client.new(options)
end

Instance Method Details

#alarm(name) ⇒ Alarm

Parameters:

  • name (String)

Returns:



40
41
42
43
44
45
# File 'lib/aws-sdk-cloudwatch/resource.rb', line 40

def alarm(name)
  Alarm.new(
    name: name,
    client: @client
  )
end

#alarms(options = {}) ⇒ Alarm::Collection

Examples:

Request syntax with placeholder values


alarms = cloud_watch.alarms({
  alarm_names: ["AlarmName"],
  alarm_name_prefix: "AlarmNamePrefix",
  alarm_types: ["CompositeAlarm"], # accepts CompositeAlarm, MetricAlarm
  children_of_alarm_name: "AlarmName",
  parents_of_alarm_name: "AlarmName",
  state_value: "OK", # accepts OK, ALARM, INSUFFICIENT_DATA
  action_prefix: "ActionPrefix",
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :alarm_names (Array<String>)

    The names of the alarms to retrieve information about.

  • :alarm_name_prefix (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`.

  • :alarm_types (Array<String>)

    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.

  • :children_of_alarm_name (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 markdown=“1”> 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.

    </note>
    
  • :parents_of_alarm_name (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 markdown=“1”> 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.

    </note>
    
  • :state_value (String)

    Specify this parameter to receive information only about alarms that are currently in the state that you specify.

  • :action_prefix (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.

Returns:



118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/aws-sdk-cloudwatch/resource.rb', line 118

def alarms(options = {})
  batches = Enumerator.new do |y|
    resp = Aws::Plugins::UserAgent.feature('resource') do
      @client.describe_alarms(options)
    end
    resp.each_page do |page|
      batch = []
      page.data.metric_alarms.each do |m|
        batch << Alarm.new(
          name: m.alarm_name,
          data: m,
          client: @client
        )
      end
      y.yield(batch)
    end
  end
  Alarm::Collection.new(batches)
end

#clientClient

Returns:



32
33
34
# File 'lib/aws-sdk-cloudwatch/resource.rb', line 32

def client
  @client
end

#composite_alarm(name) ⇒ CompositeAlarm

Parameters:

  • name (String)

Returns:



140
141
142
143
144
145
# File 'lib/aws-sdk-cloudwatch/resource.rb', line 140

def composite_alarm(name)
  CompositeAlarm.new(
    name: name,
    client: @client
  )
end

#composite_alarms(options = {}) ⇒ CompositeAlarm::Collection

Examples:

Request syntax with placeholder values


composite_alarms = cloud_watch.composite_alarms({
  alarm_names: ["AlarmName"],
  alarm_name_prefix: "AlarmNamePrefix",
  alarm_types: ["CompositeAlarm"], # accepts CompositeAlarm, MetricAlarm
  children_of_alarm_name: "AlarmName",
  parents_of_alarm_name: "AlarmName",
  state_value: "OK", # accepts OK, ALARM, INSUFFICIENT_DATA
  action_prefix: "ActionPrefix",
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :alarm_names (Array<String>)

    The names of the alarms to retrieve information about.

  • :alarm_name_prefix (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`.

  • :alarm_types (Array<String>)

    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.

  • :children_of_alarm_name (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 markdown=“1”> 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.

    </note>
    
  • :parents_of_alarm_name (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 markdown=“1”> 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.

    </note>
    
  • :state_value (String)

    Specify this parameter to receive information only about alarms that are currently in the state that you specify.

  • :action_prefix (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.

Returns:



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
# File 'lib/aws-sdk-cloudwatch/resource.rb', line 218

def composite_alarms(options = {})
  batches = Enumerator.new do |y|
    resp = Aws::Plugins::UserAgent.feature('resource') do
      @client.describe_alarms(options)
    end
    resp.each_page do |page|
      batch = []
      page.data.composite_alarms.each do |c|
        batch << CompositeAlarm.new(
          name: c.alarm_name,
          data: c,
          client: @client
        )
      end
      y.yield(batch)
    end
  end
  CompositeAlarm::Collection.new(batches)
end

#metric(namespace, name) ⇒ Metric

Parameters:

  • namespace (String)
  • name (String)

Returns:



241
242
243
244
245
246
247
# File 'lib/aws-sdk-cloudwatch/resource.rb', line 241

def metric(namespace, name)
  Metric.new(
    namespace: namespace,
    name: name,
    client: @client
  )
end

#metrics(options = {}) ⇒ Metric::Collection

Examples:

Request syntax with placeholder values


metrics = cloud_watch.metrics({
  namespace: "Namespace",
  metric_name: "MetricName",
  dimensions: [
    {
      name: "DimensionName", # required
      value: "DimensionValue",
    },
  ],
  recently_active: "PT3H", # accepts PT3H
  include_linked_accounts: false,
  owning_account: "AccountId",
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :namespace (String)

    The metric namespace to filter against. Only the namespace that matches exactly will be returned.

  • :metric_name (String)

    The name of the metric to filter against. Only the metrics with names that match exactly will be returned.

  • :dimensions (Array<Types::DimensionFilter>)

    The dimensions to filter against. Only the dimensions that match exactly will be returned.

  • :recently_active (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 40 minutes more than the specified time interval.

  • :include_linked_accounts (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`.

  • :owning_account (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`.

Returns:



294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
# File 'lib/aws-sdk-cloudwatch/resource.rb', line 294

def metrics(options = {})
  batches = Enumerator.new do |y|
    resp = Aws::Plugins::UserAgent.feature('resource') do
      @client.list_metrics(options)
    end
    resp.each_page do |page|
      batch = []
      page.data.metrics.each do |m|
        batch << Metric.new(
          namespace: m.namespace,
          name: m.metric_name,
          data: m,
          client: @client
        )
      end
      y.yield(batch)
    end
  end
  Metric::Collection.new(batches)
end