Class: Aws::CloudWatch::Resource

Inherits:
Object
  • Object
show all
Defined in:
gems/aws-sdk-cloudwatch/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 'gems/aws-sdk-cloudwatch/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 'gems/aws-sdk-cloudwatch/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.

    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.

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

    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.

  • :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
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 118

def alarms(options = {})
  batches = Enumerator.new do |y|
    resp = @client.describe_alarms(options)
    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 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 32

def client
  @client
end

#composite_alarm(name) ⇒ CompositeAlarm

Parameters:

  • name (String)

Returns:



138
139
140
141
142
143
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 138

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.

    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.

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

    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.

  • :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:



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

def composite_alarms(options = {})
  batches = Enumerator.new do |y|
    resp = @client.describe_alarms(options)
    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:



237
238
239
240
241
242
243
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 237

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
})

Parameters:

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

    ({})

Options Hash (options):

  • :namespace (String)

    The namespace to filter against.

  • :metric_name (String)

    The name of the metric to filter against.

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

    The dimensions to filter against.

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

Returns:



275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 275

def metrics(options = {})
  batches = Enumerator.new do |y|
    resp = @client.list_metrics(options)
    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