getsentry / getsentry/sentry-ruby

ActiveJob rework

Aperta
#2,932 1 commento 1 reazione 1 assegnatario Rivendicata da @solnic Vedi su GitHub
Improvement Ruby Spans
Lingua principale
Ruby
Stelle
987
Fork
541
Merge medio
17h 40m
PR unite (30g)
19

Descrizione

### 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](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-sidekiq/lib/sentry-sidekiq.rb#L22), [sentry-resque](sentry-resque/lib/sentry-resque.rb#L21) and [sentry-delayed_job](sentry-delayed_job/lib/sentry-delayed_job.rb#L21) 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.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.