Integrations
Sentry provides a number of integrations which are designed to add automatic instrumentation to your application. Some of these integrations are enabled by default, while others have to be explicitly enabled.
Integration Usage In Next.js
Next.js can operate within three runtimes: the Node.js runtime, the browser runtime, and the Edge runtime. However, it's important to note that not all integrations are compatible with all of these runtimes.
Depending on whether an integration enhances the functionality of a particular runtime, such as the BrowserTracing integration for the browser runtime or the RequestData integration for the Node.js runtime, you can only include these integrations in their respective configuration files:
- For the browser runtime, add integrations to
sentry.client.config.ts
. - For Node.js, add integrations to
sentry.server.config.ts
. - For the Edge runtime, add integrations to
sentry.edge.config.ts
.
Modifying Default Integrations
To disable system integrations, set defaultIntegrations: false
when calling init()
.
To override their settings, provide a new instance with your config to the integrations
option. For example, to turn off browser capturing console calls:
Sentry.init({
dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
integrations: [
new Sentry.Integrations.Breadcrumbs({
console: false,
}),
],
});
Adding an Integration
You can add additional integrations in your init
call:
import * as Sentry from "@sentry/browser";
import { ReportingObserver } from "@sentry/integrations";
Sentry.init({
dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
integrations: [new ReportingObserver()],
});
Alternatively, you can add integrations lazily via Sentry.addIntegration()
.
This is useful if you only want to enable an integration in a specific environment or if you want to lazy-load an integration.
For all other cases, we recommend you use the integrations
option.
import * as Sentry from "@sentry/browser";
import { ReportingObserver } from "@sentry/integrations";
Sentry.init({
integrations: [],
});
Sentry.addIntegration(new ReportingObserver());
Removing a Default Integration
If you only want to remove a single or some of the default integrations, instead of disabling all of them with defaultIntegrations: false
, you can use the following syntax to filter out the ones you don't want.
This example removes the integration for adding breadcrumbs to the event, which is enabled by default:
Sentry.init({
// ...
integrations: function (integrations) {
// integrations will be all default integrations
return integrations.filter(function (integration) {
return integration.name !== "Breadcrumbs";
});
},
});
Custom Integrations
You can also create custom integrations.
Available Integrations
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) to suggesting an update ("yeah, this would be better").
- Package:
- npm:@sentry/nextjs
- Version:
- 7.83.0
- Repository:
- https://github.com/getsentry/sentry-javascript