librato/librato-rack

View on GitHub
lib/librato/collector/group.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Librato
  class Collector
    # abstracts grouping together several similarly named measurements
    #
    class Group

      def initialize(collector, prefix)
        @collector, @prefix = collector, "#{prefix}."
      end

      def group(prefix)
        prefix = "#{@prefix}#{prefix}"
        yield self.class.new(@collector, prefix)
      end

      def increment(counter, options={})
        counter = "#{@prefix}#{counter}"
        @collector.increment counter, options
      end

      def measure(*args, &block)
        args[0] = "#{@prefix}#{args[0]}"
        @collector.measure(*args, &block)
      end
      alias :timing :measure

    end
  end
end