Sha256: ecc1c8d178d4204c244a09dbf9d25b7d7a393d19830ac68010ae940a1cffa63d

Contents?: true

Size: 831 Bytes

Versions: 1

Compression:

Stored size: 831 Bytes

Contents

require 'singleton'

java_import 'com.codahale.metrics.Histogram'
java_import 'com.codahale.metrics.MetricRegistry'
java_import 'com.codahale.metrics.JmxReporter'

require 'liquid/metrics/logger_reporter'

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

module Metrics

  @@registry = MetricRegistry.new

  def self.start
    reporters = [
      JmxReporter.forRegistry(@@registry).build,
      LoggerReporter.new(@@registry),
    ]
    reporters.each(&:start)
    Signal.register_shutdown_handler { reporters.each(&:stop) }
  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

1 entries across 1 versions & 1 rubygems

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