module SidekiqUtils::WebExtensions::ThroughputMonitor

Public Class Methods

registered(app) click to toggle source
# File lib/sidekiq_utils/web_extensions/throughput_monitor.rb, line 4
def self.registered(app)
  view_path = File.join(File.expand_path("..", __FILE__), "views")

  app.get("/throughput") do
    last_run_at = {}
    Sidekiq.redis {|r| r.hgetall('sidekiq_last_run') }.each do |job, last_run|
      last_run_at[job] = last_run
    end
    @throughput = SidekiqUtils::RedisMonitorStorage.
        retrieve('sidekiq_elapsed', 'elapsed').map do |job, values|

      if last_run_at[job]
        last_run_time = Time.at(Integer(last_run_at[job])).
          in_time_zone('US/Eastern').to_s(:long) + ' ET'
      else
        last_run_time = 'n/a'
      end
      [job,
       values['average'],
       values['count'],
       last_run_time,
      ]
    end.sort_by {|x| -x[2] }
    render(:erb, File.read(File.join(view_path, "throughput.erb")))
  end
end