Commit 0e7a20c8 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

timeseries rendering wip

parent 7ade8408
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ class FnordMetric::Gauge
  end

  def tick
    (@opts[:tick] || 3600).to_i
    (@opts[:tick] || @opts[:resolution] || 3600).to_i
  end

  def tick_at(time)    
+6 −4
Original line number Diff line number Diff line
@@ -17,7 +17,9 @@ module FnordMetric::GaugeCalculations
  end

  def values_in(range)
    values_at(ticks_in(range))
    ticks = ticks_in(range)
    ticks << tick_at(range.last) if ticks.size == 0
    values_at(ticks)
  end
  
  def value_at(time, opts={}, &block)
@@ -46,9 +48,9 @@ module FnordMetric::GaugeCalculations
    end
  end

  def values_in(range, opts={}, &block)
    values_at((tick_at(range.first)..range.last).step(tick))
  end
  # def values_in(range, opts={}, &block)
  #   values_at((tick_at(range.first)..range.last).step(tick))
  # end

  def calculate_value(_v, _t, opts, block)
    block = @@avg_per_count_proc if average?
+8 −0
Original line number Diff line number Diff line
@@ -8,6 +8,8 @@ module FnordMetric::GaugeRendering
    { :title => name }.merge(render(*args))
  end

private

  def render_haml(in_file)
    haml_engine = Haml::Engine.new(File.read(
      File.expand_path("../../../web/haml/#{in_file}.haml", __FILE__)
@@ -20,4 +22,10 @@ module FnordMetric::GaugeRendering
    )
  end

  def parse_interval(interval_str)
    match = interval_str.match(/([0-9]+)-([0-9]+)/)
    raise "invalid interval: #{interval_str}" unless match
    (match[1].to_i..match[2].to_i)
  end

end
 No newline at end of file
+5 −28
Original line number Diff line number Diff line
class FnordMetric::TimeseriesGauge < FnordMetric::Gauge

  def render(namespace, event)
    # backend = _backend[0].new(_backend[1])

    # colors = ["#2F635E", "#606B36", "#727070", "#936953", "#CD645A", "#FACE4F", "#42436B"]

    # t_since = @opts["since"].to_i
    # t_until = @opts["until"].to_i

    # @tick = (t_until - t_since) / 150

    # @series_timelines = Hash.new
    # @series_queries = Hash.new
    @interval = parse_interval(event["interval"])

    # timeline = Hash[149.times.inject([t_until]) do |a, n|
    #   a + [a.first - n*@tick]
    # end.map do |t|
    #   [t, 0]
    # end]
    series_gauges.each do |series, gauge|
      puts @interval.inspect
      puts gauge.values_in(@interval).inspect
    end

    # @opts["series"].each do |skey, series|
    #   @opts["series"][skey]["color"] ||= colors.unshift(colors.pop).first
@@ -35,20 +26,6 @@ class FnordMetric::TimeseriesGauge < FnordMetric::Gauge
    #   runner.send(:shutdown, true)
    # end

    # backend.subscribe(query) do |event|

    #   @series_queries.each do |skey, squery|
    #     if squery.matches?(event)
    #       (event["_time"]-@tick..event["_time"]).to_a.reverse.detect do |t|
    #         if @series_timelines[skey].has_key?(t)
    #           @series_timelines[skey][t] += 1
    #         end
    #       end
    #     end
    #   end

    # end

    {
      :html => render_haml(:timeseries_gauge),
      :exec => render_file('fnordmetric.views.timeseries_gauge.js')
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ FnordMetric.views.gaugeView = (function(gauge_name){

  function open_interval_modal(){
    var interval_list = $('<ul>');
    var now = (new Date()).getTime();
    var now = parseInt((new Date()).getTime() / 1000);

    for(n=0; n < 10; n++){
      var interval = now;