Sha256: 1add1f2be07cdf86468030e84874258af29cf8b393e17f5ced5477d3536ce95d

Contents?: true

Size: 1.04 KB

Versions: 12

Compression:

Stored size: 1.04 KB

Contents

java_import 'com.codahale.metrics.Histogram'
java_import 'com.codahale.metrics.JmxReporter'
java_import 'com.codahale.metrics.MetricRegistry'
java_import 'java.util.concurrent.TimeUnit'

class Histogram
  java_alias :update_long, :update, [Java::long]
end

module Metrics
  @registry = MetricRegistry.new
  @reporters = []

  def self.start(period = nil, unit = nil)
    @period ||= 60
    @unit ||= TimeUnit::SECONDS
    JmxReporter.forRegistry(@registry).build.start
    Signal.register_shutdown_handler { stop }
  end

  def self.stop
    @reporters.each do |reporter|
      reporter.run if reporter.respond_to?(:run)
      reporter.stop
    end
    @reporters.clear
  end

  def self.register_reporter(reporter)
    reporter.start(@period, @unit)
    @reporters << reporter
  end

  def self.registry
    @registry
  end

  def self.counter(name)
    registry.counter(name)
  end

  def self.meter(name)
    registry.meter(name)
  end

  def self.histogram(name)
    registry.histogram(name)
  end

  def self.timer(name)
    registry.timer(name)
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
liquid-ext-3.4.1 lib/liquid/metrics.rb
liquid-ext-3.4.0 lib/liquid/metrics.rb
liquid-ext-3.3.10 lib/liquid/metrics.rb
liquid-ext-3.3.9 lib/liquid/metrics.rb
liquid-ext-3.3.8 lib/liquid/metrics.rb
liquid-ext-3.3.7 lib/liquid/metrics.rb
liquid-ext-3.3.6 lib/liquid/metrics.rb
liquid-ext-3.3.5 lib/liquid/metrics.rb
liquid-ext-3.3.4 lib/liquid/metrics.rb
liquid-ext-3.3.3 lib/liquid/metrics.rb
liquid-ext-3.3.2 lib/liquid/metrics.rb
liquid-ext-3.3.0 lib/liquid/metrics.rb