Commit 3434a703 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

timeline vs. timeseries merge wip

parent 5338b021
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -143,6 +143,12 @@ require "fnordmetric/web/dashboard"



require "fnordmetric/widgets/widget"
require "fnordmetric/widgets/timeseries_widget"
require "fnordmetric/widgets/numbers_widget"






@@ -173,9 +179,6 @@ require "fnordmetric/gauges/dummy_gauge"
require "fnordmetric/gauges/numeric_timeseries_gauge"
require "fnordmetric/gauges/realtime_gauge"

require "fnordmetric/widgets/widget"
require "fnordmetric/widgets/timeline_widget"
require "fnordmetric/widgets/numbers_widget"
require "fnordmetric/widgets/realtime_value_widget"


+0 −36
Original line number Diff line number Diff line
class FnordMetric::TimelineWidget < FnordMetric::Widget
  
  @@series_colors = ["#FACE4F", "#42436B", "#CD645A", "#2F635E"]
  
  def react(ev)
    ev["ticks"] = ev["ticks"].map(&:to_i) if ev["ticks"]
    ev["tick"] = ev["tick"].to_i if ev["tick"]

    {
      :tick => ev["tick"],
      :cmd => "values_at",
      :values => Hash[@opts[:series].map{ |skey|
        vals =  call_handler(:values_at, skey, ev["ticks"], ev["tick"]) 
        ev["ticks"].each{ |_tick| vals[_tick.to_i] ||= 0 }
        [skey, vals]
      }]
    }
  end  

  def opts
    super.tap do |o|
      o[:series_titles] ||= Hash[o[:series].map{|s| [s, s]}]
    end
  end

  def data
    super.merge(
      :ticks => [30]
    )
  end

  def has_tick?
    false
  end

end
 No newline at end of file
+38 −0
Original line number Diff line number Diff line
class FnordMetric::TimeseriesWidget < FnordMetric::Widget

  def data    
    super.merge(
      :series => series,
      :start_timestamp => ticks.first,
      :end_timestamp => ticks.last,
      :autoupdate => (@opts[:autoupdate] || 60),
      :include_current => !!@opts[:include_current],
      :plot_style => plot_style,
      :tick => tick
    )
  end

  def plot_style
    (@opts[:plot_style] || 'line').to_s.gsub("area", "stack")
  end

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

    gauges.map do |gauge|
      { 
        :name => gauge.name, 
        :data => [{:x => ticks.first, :y => 0}], 
        :color => colors.unshift(colors.pop).first 
      }
    end
  end

  def has_tick?
    true
  end

end

class FnordMetric::TimelineWidget < FnordMetric::TimeseriesWidget
end
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ FnordMetric.views.dashboardView = (function(dashboard_name){
      var widget = widgets[wkey];
      if(!widget["widget_key"]){ widget["widget_key"] = wkey; }
      /* argh... */
      if(widget.klass=='TimelineWidget'){ _w = FnordMetric.widgets.timelineWidget(); }
      if(widget.klass=='TimelineWidget'){ _w = FnordMetric.widgets.timeseriesWidget(); }
      if(widget.klass=='NumbersWidget'){ _w = FnordMetric.widgets.numbersWidget(); }
      if(widget.klass=='RealtimeValueWidget'){ _w = FnordMetric.widgets.realtimeValueWidget(); }
      
+1 −1
Original line number Diff line number Diff line
FnordMetric.widgets.timeseries_widget().render({
FnordMetric.widgets.timeseriesWidget().render({
  title: "Fnord!!!!",
  elem: $('.mywidget'),
  default_style: 'flow',
Loading