class SidekiqQueueStatus::Middleware

Constants

HEADERS

Public Class Methods

new(app) click to toggle source
# File lib/sidekiq_queue_status/middleware.rb, line 10
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/sidekiq_queue_status/middleware.rb, line 14
def call(env)
  if env["PATH_INFO"] =~ %r{\A/queue-status\Z}
    metrics = Metric.all
    body = { latencies: metrics.latencies, failure_percentage: metrics.failure_rate, errors: metrics.errors }.to_json
    status = metrics.errors.any? ? 503 : 200
    [status, HEADERS, [body]]
  else
    @app.call(env)
  end
end