Module: Philiprehberger::JobMeter::Histogram

Defined in:
lib/philiprehberger/job_meter/histogram.rb

Class Method Summary collapse

Class Method Details

.compute(durations, buckets) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/philiprehberger/job_meter/histogram.rb', line 8

def compute(durations, buckets)
  sorted_buckets = buckets.sort
  result = {}

  sorted_buckets.each_with_index do |upper, index|
    lower = index.zero? ? 0 : sorted_buckets[index - 1]
    label = "#{lower}-#{upper}"
    result[label] = durations.count { |d| d >= lower && d < upper }
  end

  last = sorted_buckets.last
  result["#{last}+"] = durations.count { |d| d >= last }

  result
end