|
| 1 | +--- |
| 2 | +title: Integrations |
| 3 | +description: "Sentry provides additional integrations designed to change configuration or add instrumentation to your application." |
| 4 | +sidebar_order: 40 |
| 5 | +--- |
| 6 | + |
| 7 | +The Sentry SDK uses integrations to hook into the functionality of popular frameworks and libraries to automatically instrument your application and give you the best data out of the box. |
| 8 | + |
| 9 | +Some of our integrations are available as separate gems while others are available as patches that can be enabled from the `sentry-ruby` gem. You can find an overview of all available integrations below. |
| 10 | + |
| 11 | +## Gems |
| 12 | + |
| 13 | +The following table lists all integrations available as gems. |
| 14 | + |
| 15 | +Simply add the relevant gems to your Gemfile and run `bundle install` to install them. |
| 16 | + |
| 17 | +| Integration | `Gemfile` | |
| 18 | +| --------------------------------------------------------------------------------------------------------------------- | :--------------: | |
| 19 | +| <LinkWithPlatformIcon platform="ruby.rails" label="Rails" url="/platforms/ruby/guides/rails" /> | `gem "sentry-rails"` | |
| 20 | +| <LinkWithPlatformIcon platform="ruby.sidekiq" label="Sidekiq" url="/platforms/ruby/guides/sidekiq" /> | `gem "sentry-sidekiq"` | |
| 21 | +| <LinkWithPlatformIcon platform="ruby.delayed_job" label="Delayed Job" url="/platforms/ruby/guides/delayed_job/" /> | `gem "sentry-delayed_job"` | |
| 22 | +| <LinkWithPlatformIcon platform="ruby.resque" label="Resque" url="/platforms/ruby/guides/resque" /> | `gem "sentry-resque"` | |
| 23 | +| <LinkWithPlatformIcon platform="ruby.opentelemetry" label="OpenTelemetry" url="/platforms/ruby/tracing/instrumentation/opentelemetry" /> | `gem "sentry-opentelemetry"` | |
| 24 | + |
| 25 | +## Patches |
| 26 | + |
| 27 | +The following table lists all integrations available as patches and which ones are enabled by default. |
| 28 | + |
| 29 | +You can use [`config.enabled_patches`](/platforms/ruby/configuration/options/#enabled-patches) to enable or disable them. |
| 30 | + |
| 31 | +```ruby |
| 32 | +# enable :faraday patch |
| 33 | +config.enabled_patches << :faraday |
| 34 | + |
| 35 | +# disable :puma patch |
| 36 | +config.enabled_patches.delete(:puma) |
| 37 | +``` |
| 38 | + |
| 39 | +| Patch | **Auto-enabled** | |
| 40 | +| ----------------------------|:----------------:| |
| 41 | +| `:http` | ✓ | |
| 42 | +| `:redis` | ✓ | |
| 43 | +| `:puma` | ✓ | |
| 44 | +| `:faraday` | | |
| 45 | +| `:graphql` | | |
| 46 | + |
| 47 | +## Features |
| 48 | + |
| 49 | +### Rails |
| 50 | + |
| 51 | +The Rails integration is a feature rich integration that: |
| 52 | + |
| 53 | +* captures Errors anywhere in your Rails application |
| 54 | +* creates Transactions for incoming HTTP Requests |
| 55 | +* records Spans in those Transactions for various important operations like: |
| 56 | + * database queries (performed with `activerecord`) |
| 57 | + * view renders |
| 58 | + |
| 59 | +### Queues |
| 60 | + |
| 61 | +The various Queue integrations for Sidekiq, Delayed Job and Resque create distributed traces connecting tasks that are performed in the background asynchronously. |
| 62 | + |
| 63 | +The Rails integration also includes this functionality for `ActiveJob`. |
| 64 | + |
| 65 | +### OpenTelemetry |
| 66 | + |
| 67 | +The OpenTelemetry integration is used for exporting spans instrumented by an OpenTelemetry SDK into Sentry. See the [OpenTelemetry Setup](/platforms/ruby/tracing/instrumentation/opentelemetry) instructions for more details. |
| 68 | + |
| 69 | +### HTTP Requests |
| 70 | + |
| 71 | +Outgoing HTTP Requests are instrumented as Spans by the `:http` (for requests done with `Net::HTTP`) and `:faraday` patches. |
| 72 | + |
| 73 | +### GraphQL |
| 74 | + |
| 75 | +GraphQL operations are instrumented as Spans by the `:graphql` patch. |
| 76 | + |
| 77 | +### Puma |
| 78 | + |
| 79 | +The `:puma` patch captures low level exceptions outside your application stack. |
0 commit comments