Commit 56076d95 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

js modal

parent 5bc3ac65
Loading
Loading
Loading
Loading
+1 −22
Original line number Diff line number Diff line
@@ -16,29 +16,8 @@ attribute types:



#   filter(KEY = VALUE)
#   filter(KEY < MAX)
#   filter(KEY > MIN)
#   filter(KEY ~ MIN-MAX)
#   filter(KEY & ONE,TWO,THREE...)
#   filter(KEY)
#   since(TIMESTAMP)
#   since(now)
#   since(-3600)
#   until(TIMESTAMP)
#   until(now)
#   stream()
#
#   filter(channel = 'dawanda-firehose') since(0) until(now)
#   filter(channel = 'dawanda-firehose') since(now) stream()
#   filter(channel & 'dawanda-firehose','dawanda-searchfeed') since(now) stream()



# examples:
./bin/fnordquery -r localhost:1234 --query "filter(_channel = 'dawanda-tap') filter(q_params.page > 150) since(0) stream()" 


./bin/fnordquery -r localhost:1234 --query "


categorical_top_k (top keywords)
+1 −0
Original line number Diff line number Diff line
@@ -16,5 +16,6 @@ require "fnordquery/query"

require "fnordquery/report"
require "fnordquery/report_builder"
require "fnordquery/report_manager"
require "fnordquery/reports/numeric_timeseries_report"
require "fnordquery/reports/categorical_topk_report"
 No newline at end of file
+42 −5
Original line number Diff line number Diff line
class FnordQuery::ReportManager

  def initialize(opts)
    @opts = opts
    reload!
  attr_accessor :opts

  def self.load(opts)
    {}.tap do |reports|
      if File.exists?(reports_dir(opts))
        Dir.foreach(reports_dir(opts)).each do |fn|
          next unless m = fn.match(/^report_(.*)\.json$/)
          fc = File.read(File.join(reports_dir(opts), fn))
          reports[m[1]] = self.new(m[1], JSON.parse(fc).merge(opts))
        end
      end
    end
  end

  def initialize(token, _opts)
    @opts = _opts
    @opts.merge!("token" => token)

    @opts[:available_intervals] = {}

    if File.exists?(report_dir)
      Dir.foreach(report_dir).each do |fn|
        next unless fn.match(/^[0-9]+-[0-9]+$/)
        @opts[:available_intervals].merge!(fn => true)
      end     
    end
  end

  def to_json
    @opts.to_json
  end

private
   
  def reports_dir(*args)
    self.class.reports_dir(@opts, *args)
  end

  def report_dir(*append)
    File.join(*([@opts[:path], "data", "report_#{@opts["token"]}", append].compact))
  end

  def reload!
  	puts "RELOAD called!"
  def self.reports_dir(_opts, *append)
    File.join(*([_opts[:path], "config", append].compact))
  end

end
 No newline at end of file
+2 −2
Original line number Diff line number Diff line
@@ -95,9 +95,9 @@ class FnordQuery::Runner
    end

    if @opts[:task].first == "web"
      @task = FnordQuery::Web.new(
      @task = FnordQuery::Web.new({
        :listen   => @opts[:task].last.split(":")
      )
      }.merge(@task_opts))
    end

    if @opts[:task].first == "exec"
+12 −0
Original line number Diff line number Diff line
@@ -14,6 +14,9 @@ class FnordQuery::Web::App < Sinatra::Base

  def initialize(opts)
    @opts = opts

    @reports = FnordQuery::ReportManager.load(@opts)
    
    super(nil)
  end

@@ -30,5 +33,14 @@ class FnordQuery::Web::App < Sinatra::Base
  	render :haml, :app
  end

  get '/report/:token.json' do
    if @reports.has_key?(params[:token])
      @reports[params[:token]].to_json
    else
      status 404
      "not found"
    end
  end

end
Loading