Skip to content

ActiveJob rework #2932

@solnic

Description

@solnic

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.

Metadata

Metadata

Assignees

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions