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