Commit 9e9c569b authored by Paul Asmuth's avatar Paul Asmuth
Browse files

first report generated :)

parent 2d5ccbd5
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
{
  "klass": "NumericTimeseriesReport",
  "title": "Gross Search Volume",
  "since": 1336873946,
  "until": 1336879946,
  "since": 1336873977,
  "until": 1336874946,
  "query": "filter(_type & 'search_with_filter','search_without_filter')",
  "series": {
    "with_filter": {
      "title": "Searches with Filter",
      "name": "Searches with Filter",
      "query": "filter(_type = 'search_with_filter')",
      "multisample_key": false
    },
    "without_filter": {
      "title": "Searches with Filter",
      "name": "Searches with Filter",
      "query": "filter(_type = 'search_without_filter')",
      "multisample_key": false
    }
+34 −8
Original line number Diff line number Diff line
@@ -4,19 +4,33 @@ class FnordQuery::NumericTimeseriesReport < FnordQuery::Report
  	super
  	backend = _backend[0].new(_backend[1])

    colors = ["#CD645A", "#2F635E", "#FACE4F", "#42436B"]

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

  	@tick = (t_until - t_since) / 150

  	@timeline = Hash[149.times.inject([t_until]) do |a, n|
  	  a + [a.last - n*@tick]
    @series_timelines = Hash.new
    @series_queries = Hash.new

  	timeline = Hash[149.times.inject([t_until]) do |a, n|
  	  a + [a.first - n*@tick]
  	end.map do |t|
  	  [t, 0]
	  end]

    @opts["series"].each do |skey, series|
      @opts["series"][skey]["color"] ||= colors.unshift(colors.pop).first
      @series_timelines[skey] = timeline.dup
      @series_queries[skey] = FnordQuery::Query.new("#{series["query"]}")
    end

  	query = FnordQuery::Query.new("#{@opts["query"]} since(#{t_since}) until(#{t_until})")

    puts "tick: #{@tick}"
    puts "time: #{Time.at(t_since).to_s}-#{Time.at(t_until).to_s}"

  	backend.on_finish do
  	  render_result
  	  runner.send(:shutdown, true)
@@ -24,9 +38,14 @@ class FnordQuery::NumericTimeseriesReport < FnordQuery::Report

  	backend.subscribe(query) do |event|

  	  (event["_time"]-@tick..event["_time"]).to_a.detect do |t|
  	  	if @timeline.has_key?(t)
          @timeline[t] += 1
      @series_queries.each do |skey, squery|
        if squery.matches?(event)
          #puts event.inspect
  	      (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

@@ -36,6 +55,13 @@ class FnordQuery::NumericTimeseriesReport < FnordQuery::Report
private

  def render_result
    @series_render = @opts["series"].map do |skey, sopts|
      {
        :data  => @series_timelines[skey].map { |t,v| { :x => t, :y => v } },
        :name  => sopts["name"],
        :color => sopts["color"]
      }
    end
  	render_haml(:numeric_timeseries_report, 'report.html')
  end

+1 −17
Original line number Diff line number Diff line
@@ -29,23 +29,7 @@
    title: "Fnord!!!!",
    elem: $('.mywidget'),
    default_style: 'stack',
    series:[{
      color: '#CD645A',
      name: "Fnord",
      data: sampler()
    },{
      color: '#2F635E',
      name: "fnord",
      data: sampler()
    },{
      color: '#42436B',
      name: "fnord",
      data: sampler()
    },{
      color: '#FACE4F',
      name: "fnord",
      data: sampler()
    }]
    series: #{@series_render.to_json}
  });

  function sampler(){
+1 −17
Original line number Diff line number Diff line
@@ -49,23 +49,7 @@
          title: "Fnord!!!!",
          elem: $('.mywidget'),
          default_style: 'stack',
          series:[{
            color: '#CD645A',
            name: "Fnord",
            data: sampler()
          },{
            color: '#2F635E',
            name: "fnord",
            data: sampler()
          },{
            color: '#42436B',
            name: "fnord",
            data: sampler()
          },{
            color: '#FACE4F',
            name: "fnord",
            data: sampler()
          }]
          series: [{"data":[{"x":1336874946,"y":2},{"x":1336874940,"y":16},{"x":1336874934,"y":12},{"x":1336874928,"y":14},{"x":1336874922,"y":14},{"x":1336874916,"y":15},{"x":1336874910,"y":23},{"x":1336874904,"y":24},{"x":1336874898,"y":23},{"x":1336874892,"y":22},{"x":1336874886,"y":24},{"x":1336874880,"y":24},{"x":1336874874,"y":22},{"x":1336874868,"y":26},{"x":1336874862,"y":24},{"x":1336874856,"y":23},{"x":1336874850,"y":25},{"x":1336874844,"y":23},{"x":1336874838,"y":21},{"x":1336874832,"y":27},{"x":1336874826,"y":11},{"x":1336874820,"y":14},{"x":1336874814,"y":15},{"x":1336874808,"y":14},{"x":1336874802,"y":12},{"x":1336874796,"y":14},{"x":1336874790,"y":12},{"x":1336874784,"y":17},{"x":1336874778,"y":17},{"x":1336874772,"y":14},{"x":1336874766,"y":13},{"x":1336874760,"y":15},{"x":1336874754,"y":12},{"x":1336874748,"y":14},{"x":1336874742,"y":14},{"x":1336874736,"y":15},{"x":1336874730,"y":15},{"x":1336874724,"y":13},{"x":1336874718,"y":14},{"x":1336874712,"y":15},{"x":1336874706,"y":16},{"x":1336874700,"y":13},{"x":1336874694,"y":19},{"x":1336874688,"y":11},{"x":1336874682,"y":16},{"x":1336874676,"y":15},{"x":1336874670,"y":14},{"x":1336874664,"y":16},{"x":1336874658,"y":15},{"x":1336874652,"y":17},{"x":1336874646,"y":11},{"x":1336874640,"y":12},{"x":1336874634,"y":14},{"x":1336874628,"y":16},{"x":1336874622,"y":13},{"x":1336874616,"y":12},{"x":1336874610,"y":15},{"x":1336874604,"y":16},{"x":1336874598,"y":15},{"x":1336874592,"y":12},{"x":1336874586,"y":14},{"x":1336874580,"y":15},{"x":1336874574,"y":17},{"x":1336874568,"y":14},{"x":1336874562,"y":19},{"x":1336874556,"y":19},{"x":1336874550,"y":13},{"x":1336874544,"y":15},{"x":1336874538,"y":13},{"x":1336874532,"y":11},{"x":1336874526,"y":16},{"x":1336874520,"y":12},{"x":1336874514,"y":13},{"x":1336874508,"y":13},{"x":1336874502,"y":26},{"x":1336874496,"y":25},{"x":1336874490,"y":22},{"x":1336874484,"y":24},{"x":1336874478,"y":20},{"x":1336874472,"y":22},{"x":1336874466,"y":27},{"x":1336874460,"y":24},{"x":1336874454,"y":21},{"x":1336874448,"y":23},{"x":1336874442,"y":30},{"x":1336874436,"y":17},{"x":1336874430,"y":23},{"x":1336874424,"y":29},{"x":1336874418,"y":25},{"x":1336874412,"y":24},{"x":1336874406,"y":23},{"x":1336874400,"y":18},{"x":1336874394,"y":16},{"x":1336874388,"y":12},{"x":1336874382,"y":13},{"x":1336874376,"y":18},{"x":1336874370,"y":14},{"x":1336874364,"y":13},{"x":1336874358,"y":12},{"x":1336874352,"y":14},{"x":1336874346,"y":12},{"x":1336874340,"y":14},{"x":1336874334,"y":18},{"x":1336874328,"y":14},{"x":1336874322,"y":13},{"x":1336874316,"y":21},{"x":1336874310,"y":14},{"x":1336874304,"y":14},{"x":1336874298,"y":19},{"x":1336874292,"y":16},{"x":1336874286,"y":19},{"x":1336874280,"y":17},{"x":1336874274,"y":14},{"x":1336874268,"y":13},{"x":1336874262,"y":16},{"x":1336874256,"y":18},{"x":1336874250,"y":15},{"x":1336874244,"y":11},{"x":1336874238,"y":16},{"x":1336874232,"y":14},{"x":1336874226,"y":15},{"x":1336874220,"y":14},{"x":1336874214,"y":14},{"x":1336874208,"y":14},{"x":1336874202,"y":13},{"x":1336874196,"y":12},{"x":1336874190,"y":12},{"x":1336874184,"y":13},{"x":1336874178,"y":15},{"x":1336874172,"y":13},{"x":1336874166,"y":12},{"x":1336874160,"y":16},{"x":1336874154,"y":10},{"x":1336874148,"y":13},{"x":1336874142,"y":19},{"x":1336874136,"y":12},{"x":1336874130,"y":14},{"x":1336874124,"y":12},{"x":1336874118,"y":16},{"x":1336874112,"y":15},{"x":1336874106,"y":14},{"x":1336874100,"y":13},{"x":1336874094,"y":13},{"x":1336874088,"y":14},{"x":1336874082,"y":18},{"x":1336874076,"y":11},{"x":1336874070,"y":19},{"x":1336874064,"y":26},{"x":1336874058,"y":25}],"name":"Searches with Filter","color":"#42436B"},{"data":[{"x":1336874946,"y":0},{"x":1336874940,"y":0},{"x":1336874934,"y":0},{"x":1336874928,"y":1},{"x":1336874922,"y":1},{"x":1336874916,"y":0},{"x":1336874910,"y":0},{"x":1336874904,"y":0},{"x":1336874898,"y":1},{"x":1336874892,"y":1},{"x":1336874886,"y":1},{"x":1336874880,"y":0},{"x":1336874874,"y":0},{"x":1336874868,"y":2},{"x":1336874862,"y":0},{"x":1336874856,"y":1},{"x":1336874850,"y":0},{"x":1336874844,"y":0},{"x":1336874838,"y":1},{"x":1336874832,"y":0},{"x":1336874826,"y":1},{"x":1336874820,"y":0},{"x":1336874814,"y":0},{"x":1336874808,"y":1},{"x":1336874802,"y":0},{"x":1336874796,"y":1},{"x":1336874790,"y":2},{"x":1336874784,"y":2},{"x":1336874778,"y":0},{"x":1336874772,"y":1},{"x":1336874766,"y":2},{"x":1336874760,"y":1},{"x":1336874754,"y":1},{"x":1336874748,"y":0},{"x":1336874742,"y":1},{"x":1336874736,"y":0},{"x":1336874730,"y":1},{"x":1336874724,"y":2},{"x":1336874718,"y":0},{"x":1336874712,"y":0},{"x":1336874706,"y":0},{"x":1336874700,"y":1},{"x":1336874694,"y":0},{"x":1336874688,"y":0},{"x":1336874682,"y":0},{"x":1336874676,"y":0},{"x":1336874670,"y":0},{"x":1336874664,"y":0},{"x":1336874658,"y":0},{"x":1336874652,"y":0},{"x":1336874646,"y":1},{"x":1336874640,"y":2},{"x":1336874634,"y":1},{"x":1336874628,"y":1},{"x":1336874622,"y":1},{"x":1336874616,"y":3},{"x":1336874610,"y":0},{"x":1336874604,"y":1},{"x":1336874598,"y":1},{"x":1336874592,"y":0},{"x":1336874586,"y":0},{"x":1336874580,"y":2},{"x":1336874574,"y":0},{"x":1336874568,"y":0},{"x":1336874562,"y":0},{"x":1336874556,"y":4},{"x":1336874550,"y":0},{"x":1336874544,"y":0},{"x":1336874538,"y":0},{"x":1336874532,"y":0},{"x":1336874526,"y":0},{"x":1336874520,"y":0},{"x":1336874514,"y":2},{"x":1336874508,"y":0},{"x":1336874502,"y":0},{"x":1336874496,"y":1},{"x":1336874490,"y":0},{"x":1336874484,"y":1},{"x":1336874478,"y":0},{"x":1336874472,"y":0},{"x":1336874466,"y":0},{"x":1336874460,"y":0},{"x":1336874454,"y":1},{"x":1336874448,"y":1},{"x":1336874442,"y":1},{"x":1336874436,"y":0},{"x":1336874430,"y":2},{"x":1336874424,"y":2},{"x":1336874418,"y":0},{"x":1336874412,"y":0},{"x":1336874406,"y":1},{"x":1336874400,"y":1},{"x":1336874394,"y":1},{"x":1336874388,"y":0},{"x":1336874382,"y":0},{"x":1336874376,"y":1},{"x":1336874370,"y":1},{"x":1336874364,"y":0},{"x":1336874358,"y":0},{"x":1336874352,"y":1},{"x":1336874346,"y":2},{"x":1336874340,"y":0},{"x":1336874334,"y":1},{"x":1336874328,"y":2},{"x":1336874322,"y":0},{"x":1336874316,"y":1},{"x":1336874310,"y":0},{"x":1336874304,"y":1},{"x":1336874298,"y":1},{"x":1336874292,"y":0},{"x":1336874286,"y":0},{"x":1336874280,"y":0},{"x":1336874274,"y":0},{"x":1336874268,"y":0},{"x":1336874262,"y":1},{"x":1336874256,"y":0},{"x":1336874250,"y":2},{"x":1336874244,"y":2},{"x":1336874238,"y":0},{"x":1336874232,"y":2},{"x":1336874226,"y":0},{"x":1336874220,"y":1},{"x":1336874214,"y":0},{"x":1336874208,"y":1},{"x":1336874202,"y":1},{"x":1336874196,"y":1},{"x":1336874190,"y":0},{"x":1336874184,"y":0},{"x":1336874178,"y":4},{"x":1336874172,"y":1},{"x":1336874166,"y":2},{"x":1336874160,"y":0},{"x":1336874154,"y":0},{"x":1336874148,"y":1},{"x":1336874142,"y":1},{"x":1336874136,"y":0},{"x":1336874130,"y":0},{"x":1336874124,"y":1},{"x":1336874118,"y":0},{"x":1336874112,"y":0},{"x":1336874106,"y":1},{"x":1336874100,"y":2},{"x":1336874094,"y":1},{"x":1336874088,"y":0},{"x":1336874082,"y":0},{"x":1336874076,"y":0},{"x":1336874070,"y":0},{"x":1336874064,"y":0},{"x":1336874058,"y":1}],"name":"Searches with Filter","color":"#FACE4F"}]
        });
        
        function sampler(){