Skip to content

A dashboard and observability gem for ActiveJob. Monitor, track, and retry job executions with a built-in UI.

License

Notifications You must be signed in to change notification settings

boringcache/active_job_dash

Repository files navigation

ActiveJobDash

A dashboard and observability gem for ActiveJob. Monitor, track, and retry job executions with a built-in UI.

Requirements

  • Ruby >= 3.2
  • Rails >= 7.2

Features

  • Track all job executions (perform, enqueue, retry, discard)
  • View success/failure rates, duration metrics, and trends
  • Retry failed jobs from the UI
  • Filter by job class, queue, status
  • Multi-region support
  • Zero configuration required for basic usage

Installation

Add to your Gemfile:

gem 'active_job_dash'

Then install:

bundle install
rails generate active_job_dash:install
rails db:migrate

Usage

Visit /admin/jobs to see the dashboard.

Configuration

# config/initializers/active_job_dash.rb
ActiveJobDash.enabled = true
ActiveJobDash.store_arguments = true
ActiveJobDash.retention_days = 30
ActiveJobDash.region = ENV['REGION']

# Exclude jobs from tracking
ActiveJobDash.excluded_jobs = ['SomeNoisyJob']

# Dashboard authentication (receives request, runs in controller context)
ActiveJobDash.dashboard_auth = ->(request) {
  admin_id = request.session[:admin_id]
  redirect_to root_path unless admin_id.present?
}

Programmatic Access

# Get stats for the last hour
stats = ActiveJobDash.stats(period: 1.hour)
stats.summary
# => { total: 1523, success: 1500, failed: 23, avg_duration_ms: 45.2, failure_rate: 1.51 }

# Stats by job class
stats.by_job_class

# Recent failures
stats.recent_failures(limit: 10)

# Retry a specific job
execution = ActiveJobDash::JobExecution.find(id)
execution.retry!

License

MIT

About

A dashboard and observability gem for ActiveJob. Monitor, track, and retry job executions with a built-in UI.

Resources

License

Stars

Watchers

Forks

Packages

No packages published