module Metrician

Reference materials: github.com/resque/resque/blob/master/docs/HOOKS.md

Constants

AgentNotInitialized
DEFAULT_PREFIX
IncompatibleAgent
MissingAgent
REQUIRED_AGENT_METHODS
VERSION

Public Class Methods

activate(agent) click to toggle source
# File lib/metrician.rb, line 23
def self.activate(agent)
  self.agent = agent
  Metrician::Reporter.all.each(&:instrument)
end
agent() click to toggle source
# File lib/metrician.rb, line 40
def self.agent
  @agent || raise(AgentNotInitialized.new)
end
agent=(agent) click to toggle source
# File lib/metrician.rb, line 28
def self.agent=(agent)
  if agent.nil?
    raise MissingAgent.new
  end

  REQUIRED_AGENT_METHODS.each do |method|
    raise IncompatibleAgent.new("agent must implement #{method}") unless agent.respond_to?(method)
  end

  @agent = agent
end
configuration() click to toggle source
# File lib/metrician.rb, line 78
def self.configuration
  @configuration ||= Metrician::Configuration.load
end
dotify(klass) click to toggle source
# File lib/metrician.rb, line 52
def self.dotify(klass)
  klass.to_s.underscore.gsub(%r{/}, ".")
end
gauge(metric, value) click to toggle source

TODO: add block form

# File lib/metrician.rb, line 74
def self.gauge(metric, value)
  prefixed? ? agent.gauge("#{prefix}#{metric}", value) : agent.gauge(metric, value)
end
increment(metric, value = 1) click to toggle source
# File lib/metrician.rb, line 69
def self.increment(metric, value = 1)
  prefixed? ? agent.increment("#{prefix}#{metric}", value) : agent.increment(metric, value)
end
logger() click to toggle source
# File lib/metrician.rb, line 48
def self.logger
  agent.logger
end
logger=(logger) click to toggle source
# File lib/metrician.rb, line 44
def self.logger=(logger)
  agent.logger = logger
end
prefix() click to toggle source
# File lib/metrician.rb, line 61
def self.prefix
  @prefix ||= DEFAULT_PREFIX
end
prefix=(prefix) click to toggle source
# File lib/metrician.rb, line 56
def self.prefix=(prefix)
  @prefixed = nil
  @prefix = prefix.to_s[-1] == "." ? prefix.to_s : "#{prefix}."
end
prefixed?() click to toggle source
# File lib/metrician.rb, line 65
def self.prefixed?
  @prefixed ||= !prefix.empty?
end
reset() click to toggle source
# File lib/metrician.rb, line 82
def self.reset
  %i[@agent @configuration].each do |memo_ivar|
    if Metrician.instance_variable_defined?(memo_ivar)
      Metrician.remove_instance_variable(memo_ivar)
    end
  end
end