class Sidewatch::Cloudwatch
Constants
- MAX_BATCH_SIZE
Attributes
client[RW]
Public Class Methods
new(config = {})
click to toggle source
# File lib/sidewatch/cloudwatch.rb, line 10 def initialize(config = {}) client = config.delete(:client){ Aws::CloudWatch::Client } client = Object.const_get(client) if client.is_a?(String) client = client.new(config) if client.is_a?(Class) self.client = client end
Public Instance Methods
send(metrics)
click to toggle source
# File lib/sidewatch/cloudwatch.rb, line 17 def send(metrics) metrics.group_by(&:namespace).each do |ns, ns_metrics| ns_metrics.each_slice(max_batch_size) do |slice| data = metric_data(ns, slice) client.put_metric_data(data) end end end
Private Instance Methods
max_batch_size()
click to toggle source
# File lib/sidewatch/cloudwatch.rb, line 28 def max_batch_size MAX_BATCH_SIZE end
metric_data(ns, metrics)
click to toggle source
# File lib/sidewatch/cloudwatch.rb, line 32 def metric_data(ns, metrics) { namespace: ns, metric_data: metrics.map{|m| { metric_name: m.name, dimensions: Array(m.dimensions).map{|name, value| {name: name, value: value}}, timestamp: m.timestamp, value: m.value, unit: m.unit } } } end