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, 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.

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



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 126

def alarms(options = {})
  batches = Enumerator.new do |y|
    resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') 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 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 32

def client
  @client
end

#composite_alarm(name) ⇒ CompositeAlarm

Parameters:

  • name (String)

Returns:



148
149
150
151
152
153
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 148

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, 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.

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



234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 234

def composite_alarms(options = {})
  batches = Enumerator.new do |y|
    resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') 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:



257
258
259
260
261
262
263
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 257

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:



310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
# File 'gems/aws-sdk-cloudwatch/lib/aws-sdk-cloudwatch/resource.rb', line 310

def metrics(options = {})
  batches = Enumerator.new do |y|
    resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') 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