class Statue::SidekiqStatistics::SidekiqMiddleware
Middleware for tracking common job run metrics
Public Instance Methods
call(worker, message, _queue) { || ... }
click to toggle source
# File lib/statue/sidekiq_statistics.rb, line 41 def call(worker, message, _queue) job_metric_name = Statue::SidekiqStatistics.job_metric_name(worker, message) if message["retry_count"] # Count retried jobs Statue.report_increment("#{job_metric_name}.retry") else # Track latency for new jobs only (we can't know since when the failed job is waiting) enqueued_at = Time.at(message["enqueued_at"]) Statue.report_duration("#{job_metric_name}.latency", Time.now - enqueued_at) end Statue.report_duration(job_metric_name) do Statue.report_success_or_failure(job_metric_name) do yield true # We only count exceptions as failure end end end