class AWS::CloudWatch::Metric


Represents a single metric.
# Metric

def alarms

Returns:
  • (MetricAlarmCollection) -
def alarms
  MetricAlarmCollection.new(self, :config => config)
end

def exists?

Returns:
  • (Boolean) - Returns `true` if this metric exists.
def exists?
  !get_resource.data[:metrics].empty?
end

def get_resource attr_name = nil

def get_resource attr_name = nil
  client.list_metrics(resource_options)
end

def initialize namespace, metric_name, options = {}

Options Hash: (**options)
  • :dimensions (Array) -- An array of dimensions.

Parameters:
  • options (Hash) --
  • metric_name (String) -- The metric name.
  • namespace (String) -- The metric namespace.
def initialize namespace, metric_name, options = {}
  @namespace = namespace
  @metric_name = metric_name
  @dimensions = options[:dimensions] || []
  super
end

def put_data *metric_data

Returns:
  • (nil) -

Parameters:
  • metric_data (Array) -- An array of hashes. Each hash
def put_data *metric_data
  metric_opts = {}
  metric_opts[:metric_name] = metric_name
  metric_opts[:dimensions] = dimensions unless dimensions.empty?
  options = {}
  options[:namespace] = namespace
  options[:metric_data] = metric_data.flatten.map do |data|
    data.merge(metric_opts)
  end
  client.put_metric_data(options)
  nil
end

def resource_identifiers

def resource_identifiers
  [
    [:namespace, namespace],
    [:metric_name, metric_name],
    [:dimensions, dimensions],
  ]
end

def statistics options = {}

Returns:
  • (MetricStatistics) -

Options Hash: (**options)
  • :period (Integer) --
  • :unit (String) --
  • :statistics (Array, required) --
  • :end_time (Time, required) --
  • :start_time (Time, required) --

Parameters:
  • options (Hash) --
def statistics options = {}
  start = options.delete(:start_time)
  stop = options.delete(:end_time)
  options[:namespace] = namespace
  options[:metric_name] = metric_name
  options[:dimensions] = dimensions unless dimensions.empty?
  options[:start_time] = start.respond_to?(:iso8601) ? start.iso8601 : start
  options[:end_time] = stop.respond_to?(:iso8601) ? stop.iso8601 : stop
  options[:period] ||= 60
  resp = client.get_metric_statistics(options)
  MetricStatistics.new(self, resp[:label], resp[:datapoints])
end