Commit 291716a1 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

proper histogram

parent 3bdc8297
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@ class FnordMetric::DistributionGauge < FnordMetric::Gauge
    interval = parse_interval(event["interval"])
    colors = ["#2F635E", "#606B36", "#727070", "#936953", "#CD645A", "#FACE4F", "#42436B"]

    @opts[:histogram] = (@opts[:histogram] || 20).to_i
    #@num_min =
    #@num_max =

+19 −7
Original line number Diff line number Diff line
@@ -30,15 +30,27 @@ class FnordMetric::Histogram < Hash
    end
  end

  def json_histogram(windows)
    histogram(windows).to_a.sort do |a, b|
      a[0].first <=> b[0].first
    end.map do |r, v|
      ["#{r.first.round(1).to_s}-#{r.last.round(1).to_s}", v.to_i]
    end.to_json
  end

private

  def histogram_windows(windows)
    window = (max - min) / windows
    _max = max
    _min = min

    window = (_max - _min) / windows.to_f

    (windows - 1).times.inject([min]) do |a,w| 
      a << a.last + window
    end.map do |swindow|
      (swindow..(swindow+window))
    (windows - 1).times.inject([(0..min)]) do |a,w| 
      a << (a[-1].last..a.last.last+window)
    end.tap do |wins|
      wins.delete_at(0)
      wins[-1] = (wins[-1].first.._max)
    end
  end

+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ private
      socket.onopen do

        socket.onmessage do |message|
          puts "received: #{message}"
          #puts "received: #{message}"
          begin
            message = JSON.parse(message)
          rescue
+2 −2
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@

  .widget_histogram_bars.resizable(data-width="60")

  .resizable(data-width="60")
  .resizable(data-width="60" style="margin-top:10px;")

    .headbar.small
      Average, Min and Max over Time
@@ -62,7 +62,7 @@
    elem: $('.widget_histogram_bars'),
    height: 320,
    no_headbar: true,
    values: #{@histogram.histogram(@opts[:histogram]).map{ |r,v| [r.to_s, v] }.to_json}
    values: #{@histogram.json_histogram(12)}
  });