module Pliny::Metrics

Attributes

backends[RW]

Public Instance Methods

count(*names, value: 1) click to toggle source
# File lib/pliny/metrics.rb, line 9
def count(*names, value: 1)
  counts = Hash[names.map { |n| ["#{Config.app_name}.#{n}", value] }]

  backends.each do |backend|
    report_and_catch { backend.report_counts(counts) }
  end

  counts
end
measure(*names, **opts, &block) click to toggle source
# File lib/pliny/metrics.rb, line 19
def measure(*names, **opts, &block)
  if block
    elapsed, return_value = time_elapsed(&block)
  end

  measurement =
    if opts.has_key?(:value)
      opts[:value]
    elsif block
      elapsed
    else
      0
    end

  measures = Hash[names.map { |n| ["#{Config.app_name}.#{n}", measurement] }]

  backends.each do |backend|
    report_and_catch { backend.report_measures(measures) }
  end

  block ? return_value : measures
end

Private Instance Methods

report_and_catch() { || ... } click to toggle source
# File lib/pliny/metrics.rb, line 50
def report_and_catch
  yield
rescue => error
  Pliny.log_exception(error)
end
time_elapsed(&block) click to toggle source
# File lib/pliny/metrics.rb, line 44
def time_elapsed(&block)
  start = Time.now
  return_value = block.call
  [Time.now - start, return_value]
end