Module: Metrics

Defined in:
lib/liquid/metrics.rb,
lib/liquid/metrics/reporter.rb,
lib/liquid/metrics/logger_reporter.rb,
lib/liquid/metrics/tracker_reporter.rb

Defined Under Namespace

Classes: LoggerReporter, Reporter, TrackerReporter

Class Method Summary collapse

Class Method Details

.counter(name) ⇒ Object



39
40
41
# File 'lib/liquid/metrics.rb', line 39

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

.histogram(name) ⇒ Object



47
48
49
# File 'lib/liquid/metrics.rb', line 47

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

.meter(name) ⇒ Object



43
44
45
# File 'lib/liquid/metrics.rb', line 43

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

.register_reporter(reporter) ⇒ Object



30
31
32
33
# File 'lib/liquid/metrics.rb', line 30

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

.registryObject



35
36
37
# File 'lib/liquid/metrics.rb', line 35

def self.registry
  @registry
end

.start(period = nil, unit = nil) ⇒ Object



15
16
17
18
19
20
# File 'lib/liquid/metrics.rb', line 15

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

.stopObject



22
23
24
25
26
27
28
# File 'lib/liquid/metrics.rb', line 22

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

.timer(name) ⇒ Object



51
52
53
# File 'lib/liquid/metrics.rb', line 51

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