module MeasureMethod::Metrics

Public Class Methods

count(name:, val: 1, data: {}) click to toggle source
# File lib/measure_method/metrics.rb, line 15
def self.count(name:, val: 1, data: {})
  met_log("count", name, val, data)
end
measure(name:, val: nil, data: {}, &block) click to toggle source
# File lib/measure_method/metrics.rb, line 19
def self.measure(name:, val: nil, data: {}, &block)
  return measure_block(name: name, data: data, &block) if block
  met_log("measure", name, val, data)
end
measure_block(name:, data: {}) { || ... } click to toggle source
# File lib/measure_method/metrics.rb, line 40
def self.measure_block(name:, data: {}, &block)
  out.log(data.merge({starting: name}))
  start = Time.now
  result = yield
  elapsed = (Time.now.to_f - start.to_f) * 1000
  measure(name: name, val: elapsed.round.to_s+"ms", data: data)
  result
end
met_log(type, name, val, data) click to toggle source
# File lib/measure_method/metrics.rb, line 35
def self.met_log(type, name, val, data)
  data["#{type}##{name}"] = val
  out.log(data)
end
metricfy(name) click to toggle source
# File lib/measure_method/metrics.rb, line 24
def self.metricfy(name)
  name.
    gsub('::', '.').
    gsub(' ', '.').
    gsub(/(\/)/, '.').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    gsub(/_/,"-").
    downcase
end
out() click to toggle source
# File lib/measure_method/metrics.rb, line 7
def self.out
  @out || Logger
end
out=(o) click to toggle source
# File lib/measure_method/metrics.rb, line 3
def self.out=(o)
  @out = o
end
sample(name:, val:, data: {}) click to toggle source
# File lib/measure_method/metrics.rb, line 11
def self.sample(name:, val:, data: {})
  met_log("sample", name, val, data)
end