Sha256: 589a9edbd59dda7169c8ae66127fed059e1d3b537e547c1b7275d401e2aa06f3
Contents?: true
Size: 1.88 KB
Versions: 2
Compression:
Stored size: 1.88 KB
Contents
require 'sinatra' if ENV["RACK_ENV"].to_s == "development" require 'sinatra/reloader' require "sinatra/content_for" end require 'ostruct' class Scout::Realtime::WebApp < Sinatra::Base set :environment, ENV["RACK_ENV"].to_s == "development" ? :development : :production set :static, true # set up static file routing set :public_dir, File.expand_path('../web', __FILE__) # set up the static dir (with images/js/css inside) set :views, File.expand_path('../web/views', __FILE__) # set up the views dir set :bind, self.bind || "0.0.0.0" # 0.0.0.0 is the default and is required for Vagrant #set :traps, false # setting this to false means 1) sinatra won't capture any interrupts or term signals; 2) we need to call Scout::Realtime::WebApp.quit! ourselves in our own signal trap #helpers Sinatra::ContentFor configure :development do puts "using Sinatra::Reloader for development" register Sinatra::Reloader end helpers do def precision(number, precision=0) "%.#{precision}f" % number end end get '/' do runner = Scout::Realtime::Main.instance.runner @latest_run = runner.latest_run @historical_metrics = runner.historical_metrics @disks = (@latest_run[:disk] ||{}).keys.sort @networks = (@latest_run[:network] ||{}).keys.sort @processes = (@latest_run[:processes] ||{}).map { |k, v| OpenStruct.new(v) }.sort_by { |a| a.memory }.reverse @meta = %w(cpu memory disk network processes).each_with_object({}) do |realtime_class, meta| meta[realtime_class] = Scout::Realtime.const_get(realtime_class.capitalize).metadata end erb :index end get '/start' do Scout::Realtime::Main.instance.start_thread redirect "/" end get '/stop' do Scout::Realtime::Main.instance.stop_thread! redirect "/" end get '/stats.json' do content_type :json Scout::Realtime::Main.instance.runner.latest_run.to_json end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
scout_realtime-1.0.5 | lib/scout_realtime/web_app.rb |
scout_realtime-1.0.4 | lib/scout_realtime/web_app.rb |