Sha256: f941217c7427782b1a889a6b62c307d2dfebf8e0e6e68e721cf1d58194829218

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

class Remnant
  module ClassMethods
    def configure(&block)
      configuration.instance_eval(&block)
    end

    def configuration
      @configuration ||= Remnant::Configuration.new.defaults!
    end

    def handler
      @handler ||= Statsd.new(Remnant.configuration.hostname, Remnant.configuration.port_number)
    end

    def collect
      @sample_counter ||= 0

      extra_remnant_key = Remnant::Discover.results.delete(:extra_remnant_key)

      if ::Rails.env.production? || ::Rails.env.staging? || ::Rails.env.demo?
        # only log if above sample rate
        if @sample_counter > configuration.sample_rate
          Remnant::Discover.results.map do |remnant_key, ms|
            key = [
                   Remnant.configuration.tag,
                   Remnant.configuration.env,
                   extra_remnant_key,
                   remnant_key
                  ].compact.join('.')

            Remnant.handler.timing(key, ms.to_i)
          end

          @sample_counter = 0
        else
          @sample_counter += 1
        end
      else
        # always log in development mode
        Rails.logger.info "--------------Remnants Discovered--------------"

        Remnant::Discover.results.map do |remnant_key, ms|
          key = [
                 extra_remnant_key,
                 remnant_key
                ].compact.join('.')

          Rails.logger.info "#{ms.to_i}ms\t#{key}"
        end

        Rails.logger.info "-----------------------------------------------"
      end

      Remnant::Discover.results.clear
    end
  end
  extend ClassMethods
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
remnant-0.2.2 lib/remnant/base.rb