class AWS::CloudWatch::Metric
# Metric
Represents a single metric.
Attributes
@return [Array<Hash>]
@return [String]
@return [String]
@return [String]
Public Class Methods
@param [String] namespace The metric namespace. @param [String] #metric_name The metric name. @param [Hash] options @option options [Array<Hash>] :dimensions An array of dimensions.
Each hash must have a `:name` and a `value` key (with string values).
# File lib/aws/cloud_watch/metric.rb, line 31 def initialize namespace, metric_name, options = {} @namespace = namespace @metric_name = metric_name @dimensions = options[:dimensions] || [] super end
Public Instance Methods
@return [MetricAlarmCollection]
# File lib/aws/cloud_watch/metric.rb, line 50 def alarms MetricAlarmCollection.new(self, :config => config) end
@return [Boolean] Returns `true` if this metric exists.
# File lib/aws/cloud_watch/metric.rb, line 115 def exists? !get_resource.data[:metrics].empty? end
Publishes metric data points to Amazon CloudWatch. @param [Array<Hash>] metric_data An array of hashes. Each hash
must pass `:value` (number) or `:statistic_values` (hash).
@return [nil]
# File lib/aws/cloud_watch/metric.rb, line 58 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
Gets statistics for this metric.
metric = CloudWatch::Metric.new('my/namepace', 'metric-name') stats = metric.statistics( :start_time => Time.now - 3600, :end_time => Time.now, :statistics => ['Average']) stats.label #=> 'some-label' stats.each do |datapoint| # datapoint is a hash end
@param [Hash] options @option options [Time,required] :start_time @option options [Time,required] :end_time @option options [Array<String>,required] :statistics @option options [String] :unit @option options [Integer] :period (60) @return [MetricStatistics]
# File lib/aws/cloud_watch/metric.rb, line 96 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
Protected Instance Methods
# File lib/aws/cloud_watch/metric.rb, line 129 def get_resource attr_name = nil client.list_metrics(resource_options) end
# File lib/aws/cloud_watch/metric.rb, line 121 def resource_identifiers [ [:namespace, namespace], [:metric_name, metric_name], [:dimensions, dimensions], ] end