Class: AWS::CloudWatch::MetricCollection

Inherits:
Object
  • Object
show all
Includes:
AWS::Core::Collection::WithNextToken
Defined in:
lib/aws/cloud_watch/metric_collection.rb

Instance Method Summary collapse

Methods included from AWS::Core::Collection

#each, #each_batch, #enum, #first, #in_groups_of, #page

Instance Method Details

#filter(name, value) ⇒ MetricCollection

Returns a new collection that will filter results when enumerated.

Examples:

Filtering by a namespace


traffic_metrics = metrics.filter('namespace', 'traffic')

Filtering by a metric name


my_metric = metrics.filter('metric_name', 'my-metric').first

Filtering by one or more dimensions


metrics = metrics.filter('dimensions', [
  { :name => 'n1', :value => 'v1' },
  { :name => 'n2', :value => 'v2' },
  { :name => 'n3', :value => 'v3' },
])

Parameters:

  • name (String, Symbol)
  • value (String, Array<String>)

Returns:



47
48
49
50
# File 'lib/aws/cloud_watch/metric_collection.rb', line 47

def filter name, value
  filters = @filters.merge(name.to_s.to_sym => value)
  MetricCollection.new(:filters => filters, :config => config)
end

#with_dimension(name, value) ⇒ MetricCollection

Returns a collection filtered by the given dimension:

metric = metrics.with_dimension('name', 'value').first

You can chain calls to #with_dimension. Additional dimensions are added.

metrics = metrics.
  with_dimension('d1', 'v1').
  with_dimension('d2', 'v2').
  with_dimension('d3', 'v3')

metrics.each{|metric|} # filtered by all three dimensions

Parameters:

  • name (String)
  • value (String)

Returns:



81
82
83
# File 'lib/aws/cloud_watch/metric_collection.rb', line 81

def with_dimension name, value
  with_dimensions([{ :name => name, :value => value }])
end

#with_dimensions(*dimensions) ⇒ MetricCollection

Returns a collection filtered by the given dimensions.

metrics.with_dimensions([
  { :name => 'd1', :value => 'v1' },
  { :name => 'd2', :value => 'v2' },
  { :name => 'd3', :value => 'v3' },
]).each do |metric|
  # ...
end

Multiple calls to #with_dimensions will add to previous dimensions.

Parameters:

  • dimensions (Array<Hash>)

    An array of dimensions. Each dimension should be a Hash with a :name and :value.

Returns:



99
100
101
102
103
# File 'lib/aws/cloud_watch/metric_collection.rb', line 99

def with_dimensions *dimensions
  dimensions = @filters[:dimensions] || []
  dimensions += dimensions.flatten
  filter(:dimensions, dimensions)
end

#with_metric_name(name) ⇒ MetricCollection

Parameters:

  • name (String)

Returns:



60
61
62
# File 'lib/aws/cloud_watch/metric_collection.rb', line 60

def with_metric_name name
  filter(:metric_name, name)
end

#with_namespace(namespace) ⇒ MetricCollection

Parameters:

  • namespace (String)

Returns:



54
55
56
# File 'lib/aws/cloud_watch/metric_collection.rb', line 54

def with_namespace namespace
  filter(:namespace, namespace)
end