Skip to content

ActiveJob rework #2932

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions