class Atatus::Collector::TxnHist
Attributes
hist[R]
kind[R]
type[R]
Public Class Methods
new(type, kind, duration)
click to toggle source
# File lib/atatus/collector/hist.rb, line 5 def initialize(type, kind, duration) @type = type @kind = kind @hist = {} @hist[find_bin duration] = 1 end
Public Instance Methods
aggregate!(duration)
click to toggle source
# File lib/atatus/collector/hist.rb, line 14 def aggregate!(duration) hbin = find_bin duration if !@hist.key?(hbin) @hist[hbin] = 1 else @hist[hbin] += 1 end end
Private Instance Methods
find_bin(duration)
click to toggle source
# File lib/atatus/collector/hist.rb, line 24 def find_bin(duration) seconds = 1000 hbin = 0 if duration < 0 hbin = 0 elsif duration < 2*seconds hbin = round_bin(duration, 10) elsif duration < 10*seconds hbin = round_bin(duration, 25) elsif duration < 20*seconds hbin = round_bin(duration, 50) elsif duration < 50*seconds hbin = round_bin(duration, 100) elsif duration < 80*seconds hbin = round_bin(duration, 200) elsif duration < 100*seconds hbin = round_bin(duration, 250) else hbin = round_bin(duration, 1000) end hbin end
round_bin(duration, unit)
click to toggle source
# File lib/atatus/collector/hist.rb, line 49 def round_bin(duration, unit) ((duration / unit.to_f).floor) * unit end