Sha256: 7c0faee59ac19f6acdc9cdec47751e3884097ba0a4407b482bbe53d7fa8ee53e

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

if RUBY_PLATFORM == "java"
  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
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
liquid-ext-3.4.2 lib/liquid/metrics.rb