def get_metric_statistics(options={})
period = (options[:period] && options[:period].to_i) || 60
statistics = Array(options[:statistics]).flatten
statistics = statistics.blank? ? ['Average'] : statistics.map{|statistic| statistic.to_s.capitalize }
start_time = options[:start_time] || (Time.now.utc - 5*60)
start_time = start_time.utc.strftime("%Y-%m-%dT%H:%M:%S+00:00") if start_time.is_a?(Time)
end_time = options[:end_time] || Time.now.utc
end_time = end_time.utc.strftime("%Y-%m-%dT%H:%M:%S+00:00") if end_time.is_a?(Time)
measure_name = options[:measure_name] || 'CPUUtilization'
dimentions = options[:dimentions] || {}
request_hash = { 'Period' => period,
'StartTime' => start_time,
'EndTime' => end_time,
'MeasureName' => measure_name }
request_hash['Unit'] = options[:unit] if options[:unit]
request_hash['CustomUnit'] = options[:custom_unit] if options[:custom_unit]
request_hash['Namespace'] = options[:namespace] if options[:namespace]
request_hash.merge!(amazonize_list('Statistics.member', statistics))
dim = []
dimentions.each do |key, values|
Array(values).each { |value| dim << [key, value] }
end
request_hash.merge!(amazonize_list(['Dimensions.member.?.Name', 'Dimensions.member.?.Value'], dim))
link = generate_request("GetMetricStatistics", request_hash)
request_info(link, GetMetricStatisticsParser.new(:logger => @logger))
end