Module: Sidekiq::HerokuAutoscale::WebExtension

Defined in:
lib/sidekiq/heroku_autoscale/web_extension.rb

Constant Summary collapse

WEB_PATH =
File.join(File.expand_path('..', __FILE__), 'web')
JS_HEADERS =
{
  'Content-Type' => 'application/javascript',
  'Cache-Control' => 'public, max-age=86400'
}.freeze

Class Method Summary collapse

Class Method Details

.registered(web) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/sidekiq/heroku_autoscale/web_extension.rb', line 14

def self.registered(web)
  web.get '/dynos' do
    if app = ::Sidekiq::HerokuAutoscale.app
      app.ping!
      @dyno_stats = app.stats
      puts @dyno_stats
    end
    render(:erb, File.read(File.join(WEB_PATH, "#{ @dyno_stats ? 'index' : 'inactive' }.erb")))
  end

  web.get '/dynos/stats' do
    if app = ::Sidekiq::HerokuAutoscale.app
      app.ping!
    end
    json(stats: app ? app.stats : {})
  end

  web.get '/dynos/index.js' do
    [200, JS_HEADERS, [File.read(File.join(WEB_PATH, 'index.js'))]]
  end
end