Commit 4e67edd0 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

toplist gauge: better timeseries rendering

parent edfa9f11
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2,9 +2,11 @@ class FnordMetric::ToplistGauge < FnordMetric::Gauge

  def render(namespace, event)
    interval = parse_interval(event["interval"])

    @toplist = FnordMetric::Toplist.new
    @all_ticks = ticks_in(interval)

    ticks_in(interval).each do |_tick|
    @all_ticks.each do |_tick|
      field_values_at(_tick, :limit => top_k, :append => :toplist).each do |item, count|
        @toplist.incr_item(_tick, item, count)
      end
+13 −5
Original line number Diff line number Diff line
@@ -22,9 +22,10 @@
        %h2 Top #{key_nouns.last}
      .ui_toplist.clickable
        .searchbar
          %input(type="search" placeholder="Search..." style="width:95%; margin-top:1px; height:36px; line-height:36px;")
        - @toplist.toplist.each do |item, score|
          .toplist_item(onclick="toplgaugeSelectItem.apply(this); return false;" data-item="#{item}")
          %input(type="search" placeholder="Search..." style="width:95%; margin-top:1px; height:36px; line-height:36px;" onchange="toplgaugeSeach($(this).val());" onkeyup="toplgaugeSeach($(this).val());")

        - @toplist.toplist(top_k).each_with_index do |(item, score), ind|
          .toplist_item(onclick="toplgaugeSelectItem.apply(this); return false;" data-item="#{item}" style="#{ind > 99 ? 'display:none;' : nil}")
            .title= item
            .value= score
            .percent
@@ -77,6 +78,7 @@
:javascript

  var toplist_gauge_timeseries = #{@toplist.timelines.to_json};
  var toplist_gauge_ticks = #{@all_ticks.sort.to_json};

  function toplgaugeSelectItem(){
    var item_key = $(this).attr('data-item');
@@ -97,8 +99,11 @@

    var series_data = [];

    for(_time in toplist_gauge_timeseries[item_key]){
      series_data.push({x: parseInt(_time), y: parseFloat(toplist_gauge_timeseries[item_key][_time])});
    for(ind in toplist_gauge_ticks){
      var _time = toplist_gauge_ticks[ind];
      var _val  = toplist_gauge_timeseries[item_key][_time];
      if(!_val){ _val = 0; }
      series_data.push({x: parseInt(_time), y: parseFloat(_val)});
    }

    FnordMetric.widgets.timeseriesWidget().render({
@@ -128,6 +133,9 @@
  }


  function toplgaugeSeach(item){
    console.log("fu: " + item);
  }