Sha256: ba2a814ffaba1a81d8693650ef1abe09041c869eed1dbf0e33d933a2e34dc847

Contents?: true

Size: 1.43 KB

Versions: 2

Compression:

Stored size: 1.43 KB

Contents

module Sidekiq::QueueMetrics
  module WebExtension
    def self.registered(app)
      view_path = File.join(File.expand_path("..", __FILE__), "views")

      app.get "/queue_metrics" do
        queue_metrics = Sidekiq::QueueMetrics.fetch
        @@last_metrics ||= queue_metrics

        @queue_metrics = queue_metrics.each_with_object({}) do |queue_metric, new_queue_metrics|
          queue, metric = queue_metric
          new_queue_metrics[queue] = metric.each_with_object({}) do |current_metric, updated_metrics|
            name, count = current_metric
            updated_metrics[name] = {'count' => count, 'animate' => @@last_metrics[queue][name] != count}
          end
        end

        @@last_metrics = queue_metrics
        render(:erb, File.read(File.join(view_path, "queues_stats.erb")))
      end

      app.get '/queue_metrics/queues/:queue/summary' do
        @queue = route_params[:queue]
        @queue_stats = Sidekiq::QueueMetrics.fetch[@queue]
        @failed_jobs = Sidekiq::QueueMetrics.failed_jobs(@queue)
        render(:erb, File.read(File.join(view_path, "queue_summary.erb")))
      end

      app.get '/queue_metrics/queues/:queue/jobs/:jid' do
        queue = route_params[:queue]
        jid = route_params[:jid]
        failed_jobs = Sidekiq::QueueMetrics.failed_jobs(queue)
        @job = failed_jobs.find {|job| job['jid'] == jid}
        render(:erb, File.read(File.join(view_path, "failed_job.erb")))
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sidekiq_queue_metrics-2.1.1 lib/sidekiq_queue_metrics/web_extension.rb
sidekiq_queue_metrics-2.1 lib/sidekiq_queue_metrics/web_extension.rb