class Object
Public Instance Methods
publish(samples)
click to toggle source
public API expressed through kernel (global) methods, for simplicity
# File lib/cloudscopes/globals.rb, line 5 def publish(samples) raise "Not running in EC2, so won't publish!" unless Cloudscopes::Ec2.runs_on_ec2? samples.each do |type,metric_samples| begin valid_data = metric_samples.select(&:valid) next if valid_data.empty? # slice metrics to chunks # put_metric_data is limited to 40KB per POST request valid_data.each_slice(4) do |slice| Cloudscopes.client.put_metric_data namespace: type, metric_data: slice.collect(&:to_cloudwatch_metric_data) end rescue Exception => e puts "Error publishing metrics for #{type}: #{e}" end end end
sample(category, *metrics)
click to toggle source
# File lib/cloudscopes/globals.rb, line 23 def sample(category, *metrics) category, metrics = category if category.is_a? Array # sample may be passed the single yield variable of Hash#each metrics = [ metrics ] unless metrics.is_a? Array [ category, metrics.collect { |m| Cloudscopes::Sample.new(category, m) } ] end