---
title: "Automatic Instrumentation"
description: "Learn what instrumentation automatically captures transactions."
url: https://docs.sentry.io/platforms/ruby/guides/delayed_job/tracing/instrumentation/automatic-instrumentation/
---

# Automatic Instrumentation | Sentry for DelayedJob

Many integrations for popular frameworks automatically capture transactions. If you have any of the following frameworks set up for Sentry error reporting and use the relevant Sentry gem, you'll start to see traces immediately:

* Ruby on Rails (`sentry-rails`)
* Active Job (`sentry-rails`)
* Sidekiq (`sentry-sidekiq`)
* Delayed Job (`sentry-delayed_job`)
* Resque (`sentry-resque`)

Spans are instrumented for the following operations within a transaction:

* Database queries in Rails that use `ActiveRecord`
  * includes common database systems such as Postgres and MySQL
* Outgoing HTTP requests made with `Net::HTTP`
* Redis operations
* Active Job enqueueing (`queue.publish`)

Active Job execution creates a `queue.process` transaction and continues the trace from the enqueue operation. Learn more in the [Active Job integration guide](https://docs.sentry.io/platforms/ruby/guides/rails/integrations/active-job.md).

The SDK also captures **queue time** as transaction data (not a child span) when a `X-Request-Start` header is present from your reverse proxy (Nginx, HAProxy, or Heroku). See [Automatic Queue Time Capture](https://docs.sentry.io/platforms/ruby/guides/delayed_job/tracing/instrumentation/performance-metrics.md#automatic-queue-time-capture) for setup instructions.

Child spans are only created within an existing transaction. If you're not using any of the supported frameworks, you'll need to [create transactions manually](https://docs.sentry.io/platforms/ruby/guides/delayed_job/tracing/instrumentation/custom-instrumentation.md).
