class CloudWatchMetrics::Resque::Builder
Public Class Methods
new(metrics)
click to toggle source
# File lib/cloud_watch_metrics/resque/builder.rb, line 6 def initialize(metrics) @metric_names = metrics.select do |key, value| value && key != :pending_per_queue end.keys end
Public Instance Methods
build(info)
click to toggle source
# File lib/cloud_watch_metrics/resque/builder.rb, line 12 def build(info) @info = info metric_data = @metric_names.map do |key| build_datum(camelize(key.to_s), @info.public_send(key)) end metric_data.concat(build_per_queue) if @info.queue_sizes metric_data end
Private Instance Methods
build_datum(metric_name, value, dimensions = {})
click to toggle source
# File lib/cloud_watch_metrics/resque/builder.rb, line 32 def build_datum(metric_name, value, dimensions = {}) { metric_name: metric_name, dimensions: default_dimensions.merge(dimensions).to_cloudwatch, timestamp: @info.time, value: value, unit: 'Count', } end
build_per_queue()
click to toggle source
# File lib/cloud_watch_metrics/resque/builder.rb, line 26 def build_per_queue @info.queue_sizes.map do |name, size| build_datum('Pending', size, Queue: name) end end
camelize(string)
click to toggle source
# File lib/cloud_watch_metrics/resque/builder.rb, line 46 def camelize(string) string.gsub(/(?:^|_)(.)/) { Regexp.last_match(1).upcase } end
default_dimensions()
click to toggle source
# File lib/cloud_watch_metrics/resque/builder.rb, line 42 def default_dimensions Dimensions.new(Namespace: @info.namespace.to_s) end