class Statsd::Batch

Attributes

batch_size[RW]
pool_size[RW]

Public Class Methods

new(statsd, batch_size) click to toggle source
# File lib/statsd.rb, line 100
def initialize(statsd, batch_size)
  @batch_size = batch_size
  @namespace  = statsd.namespace
  @reporter   = Statsd::Reporter.new(statsd, batch_size, pool_size)
end

Protected Instance Methods

check_and_enqueue(msg) click to toggle source
# File lib/statsd.rb, line 118
def check_and_enqueue(msg)
  if @reporter.queue.size == @reporter.batch_size
    logger = Logger.new('queue.log')
    logger.warn "Queue at Max Capacity !"
  else
    @reporter.enqueue(msg)
  end
end
send_stat(stat, delta, type, sample_rate=1) click to toggle source
# File lib/statsd.rb, line 108
def send_stat(stat, delta, type, sample_rate=1)
  if sample_rate == 1 or rand < sample_rate
    stat   = stat.to_s.gsub('::', '.').tr(':|@', '_')
    prefix = "#{@namespace}." unless @namespace.nil?
    rate   = "|@#{sample_rate}" unless sample_rate == 1
    msg    = "#{prefix}#{stat}:#{delta}|#{type}#{rate}"
    check_and_enqueue(msg)
  end
end