Sha256: b388f4ca294c317edbd78e775812b6fb3fb989dc4e5da9d8bf9a6846bef96533

Contents?: true

Size: 1.13 KB

Versions: 10

Compression:

Stored size: 1.13 KB

Contents

require 'sinatra/base'
require 'json'

class FrenzyBunnies::Web < Sinatra::Base
  configure do
    # disable logging
    set :public_folder, File.expand_path('web/public', File.dirname(__FILE__))
  end

  before do
    content_type 'application/json'
  end

  not_found do
    'Cant find that, sorry.'
  end

  error do
  'Oops. There was an error - ' + env['sinatra.error'].name
  end

  get '/ping' do
    'ok'
  end

  get '/health' do
    settings.health_collector.collect.to_json
  end

  get '/stats' do
    jobs.map do |klass|
      { :name => klass.name,
        :stats => klass.jobs_stats }
    end.to_json
  end

  get '/' do
    redirect '/index.html'
  end

  def self.run_with(jobs, opts={})
    set :jobs, (jobs || [])
    set :health_collector, FrenzyBunnies::Health::Collector.new({:jvm => {:threadfilter => opts[:threadfilter]}})
    @logger = opts[:logger]
    @logger.info "* running web dashboard bound to #{opts[:host]} on port #{opts[:port]}."
    Rack::Handler::WEBrick.run self, :Host => opts[:host], :Port => opts[:port],  :Logger => WEBrick::Log.new("/dev/null"), :AccessLog => [nil, nil]
  end
  def jobs
    settings.jobs
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
boardintel_frenzy_bunnies-0.0.17-java lib/frenzy_bunnies/web.rb
boardintel_frenzy_bunnies-0.0.16 lib/frenzy_bunnies/web.rb
boardintel_frenzy_bunnies-0.0.15 lib/frenzy_bunnies/web.rb
boardintel_frenzy_bunnies-0.0.14 lib/frenzy_bunnies/web.rb
boardintel_frenzy_bunnies-0.0.13 lib/frenzy_bunnies/web.rb
boardintel_frenzy_bunnies-0.0.12 lib/frenzy_bunnies/web.rb
boardintel_frenzy_bunnies-0.0.11 lib/frenzy_bunnies/web.rb
boardintel_frenzy_bunnies-0.0.9 lib/frenzy_bunnies/web.rb
frenzy_bunnies-0.0.8 lib/frenzy_bunnies/web.rb
frenzy_bunnies-0.0.7 lib/frenzy_bunnies/web.rb