class MetricCollect::Metric
Attributes
backends[R]
name[RW]
Public Class Methods
new(name=nil)
click to toggle source
# File lib/metric_collect/metric.rb, line 23 def initialize(name=nil) @backends = Array.new @name = name end
Public Instance Methods
method_missing(method_symbol, *args) { || ... }
click to toggle source
# File lib/metric_collect/metric.rb, line 28 def method_missing(method_symbol, *args, &block) case method_symbol when :statsd @new_backend = MetricCollect::Backend::Statsd.new(args[0]) when :graphite @new_backend = MetricCollect::Backend::Graphite.new(args[0]) when :email @new_backend = MetricCollect::Backend::Email.new(args[0]) else if @new_backend.params.has_key?(method_symbol) @new_backend.params[method_symbol] = args[0] else raise ArgumentError.new("No argument for #{@new_backend.class} named #{method_symbol.to_s}") end return end begin yield if block rescue => error MetricCollect::Log.fatal("Error loading value[#{name}::#{@new_backend.name}]", error) end @backends << @new_backend end
send(config)
click to toggle source
# File lib/metric_collect/metric.rb, line 53 def send(config) @backends.each do |backend| MetricCollect::Log.info("Processing value[#{name}::#{backend.name}] sending key: #{backend.key} value: #{backend.value} to #{backend.class}") backend.process_metric(config) end end