Skip to main content

job_metrics

📊 Instrumenting Jobs with ActiveSupport::Notifications​

Track job durations and failures by subscribing to the perform.active_job event. Push metrics to your preferred monitoring system for real‑time insights.

# config/initializers/job_metrics.rb
ActiveSupport::Notifications.subscribe('perform.active_job') do |name, start, finish, id, payload|
duration_ms = (finish - start) * 1000
status = payload[:exception] ? 'error' : 'success'
StatsD.increment("jobs.#{payload[:job].class.name}.#{status}")
StatsD.timing("jobs.#{payload[:job].class.name}.duration", duration_ms)
end

Each job invocation emits metrics like jobs.ProcessOrderJob.success and timing data, empowering performance tuning.