Description
Flip ActiveJob from a fallback to the primary background-job integration in sentry-rails. One code path covers every AJ-backed adapter (SolidQueue, GoodJob, Sidekiq+AJ, future adapters) with tracing, error capture, and context enrichment. No new gems.
Current state (recap)
- sentry-rails/lib/sentry/rails/active_job.rb wraps
perform_now with a transaction and exception capture, but bails out when self.class.queue_adapter.class.to_s is listed in config.rails.skippable_job_adapters.
- sentry-sidekiq, sentry-resque and sentry-delayed_job each push their AJ adapter name into that list at boot, so AJ only kicks in when none of those are loaded.
- No enqueue-side instrumentation and no trace propagation between producer and worker on the AJ path.
- SolidQueue / GoodJob work today only because AJ is already the fallback — but without tracing-producer linkage.
Target state
- AJ integration owns perform-side tracing + error capture for every adapter by default.
- An enqueue-side producer span (
queue.publish) is created in the calling transaction and carries trace headers on the job payload.
- Worker transaction continues the producer trace when headers are present.
sentry-sidekiq still handles sidekiq-native jobs, but detects AJ-wrapped jobs and defers perform tracing + error capture to the AJ integration (no double reporting, no double spans).
sentry-resque / sentry-delayed_job become maintenance-only.
Description
Flip ActiveJob from a fallback to the primary background-job integration in
sentry-rails. One code path covers every AJ-backed adapter (SolidQueue, GoodJob, Sidekiq+AJ, future adapters) with tracing, error capture, and context enrichment. No new gems.Current state (recap)
perform_nowwith a transaction and exception capture, but bails out whenself.class.queue_adapter.class.to_sis listed inconfig.rails.skippable_job_adapters.Target state
queue.publish) is created in the calling transaction and carries trace headers on the job payload.sentry-sidekiqstill handles sidekiq-native jobs, but detects AJ-wrapped jobs and defers perform tracing + error capture to the AJ integration (no double reporting, no double spans).sentry-resque/sentry-delayed_jobbecome maintenance-only.