getsentry / getsentry/sentry-ruby

ActiveJob rework

Abierto
#2,932 1 comentario 1 reacción 1 asignado Reclamado por @solnic Ver en GitHub
Improvement Ruby Spans
Lenguaje dominante
Ruby
Estrellas
987
Forks
541
Merge medio
17 h 40 min
PR fusionados (30 d)
19

Descripción

### 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.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.