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



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

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

.histogram(name) ⇒ Object



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

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

.meter(name) ⇒ Object



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

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

.register_reporter(reporter) ⇒ Object



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

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

.registryObject



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

def self.registry
  @registry
end

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



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

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

.stopObject



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

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

.timer(name) ⇒ Object



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

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