Sentry - SDK Configuration
Initialize and configure Sentry SDKs across different platforms and frameworks.
JavaScript/TypeScript
Browser SDK
import * as Sentry from "@sentry/browser";
Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0", environment: process.env.NODE_ENV, release: process.env.RELEASE_VERSION, tracesSampleRate: 1.0, replaysSessionSampleRate: 0.1, replaysOnErrorSampleRate: 1.0, integrations: [ Sentry.browserTracingIntegration(), Sentry.replayIntegration(), ], });
Node.js SDK
import * as Sentry from "@sentry/node";
Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0", environment: process.env.NODE_ENV, release: process.env.RELEASE_VERSION, tracesSampleRate: 1.0, integrations: [ Sentry.httpIntegration(), Sentry.expressIntegration(), ], });
Next.js SDK
// sentry.client.config.ts import * as Sentry from "@sentry/nextjs";
Sentry.init({ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, tracesSampleRate: 1.0, replaysSessionSampleRate: 0.1, replaysOnErrorSampleRate: 1.0, });
// sentry.server.config.ts import * as Sentry from "@sentry/nextjs";
Sentry.init({ dsn: process.env.SENTRY_DSN, tracesSampleRate: 1.0, });
React SDK
import * as Sentry from "@sentry/react";
Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0", integrations: [ Sentry.browserTracingIntegration(), Sentry.reactRouterV6BrowserTracingIntegration({ useEffect, useLocation, useNavigationType, createRoutesFromChildren, matchRoutes, }), ], tracesSampleRate: 1.0, });
// Wrap your app const App = () => ( <Sentry.ErrorBoundary fallback={<ErrorFallback />}> <YourApp /> </Sentry.ErrorBoundary> );
Python SDK
import sentry_sdk
sentry_sdk.init( dsn="https://examplePublicKey@o0.ingest.sentry.io/0", environment=os.getenv("ENVIRONMENT"), release=os.getenv("RELEASE_VERSION"), traces_sample_rate=1.0, profiles_sample_rate=1.0, )
Django Integration
settings.py
import sentry_sdk
sentry_sdk.init( dsn="https://examplePublicKey@o0.ingest.sentry.io/0", integrations=[ sentry_sdk.integrations.django.DjangoIntegration(), ], traces_sample_rate=1.0, send_default_pii=True, )
Go SDK
import "github.com/getsentry/sentry-go"
func main() { err := sentry.Init(sentry.ClientOptions{ Dsn: "https://examplePublicKey@o0.ingest.sentry.io/0", Environment: os.Getenv("ENVIRONMENT"), Release: os.Getenv("RELEASE_VERSION"), TracesSampleRate: 1.0, }) if err != nil { log.Fatalf("sentry.Init: %s", err) } defer sentry.Flush(2 * time.Second) }
Configuration Options
Sample Rates
Sentry.init({ // Error sampling (1.0 = 100%) sampleRate: 1.0,
// Transaction/trace sampling tracesSampleRate: 0.2,
// Or use a sampler function tracesSampler: (samplingContext) => { if (samplingContext.name.includes("/health")) { return 0; // Don't trace health checks } return 0.2; }, });
Filtering Events
Sentry.init({ beforeSend(event, hint) { // Filter out specific errors if (event.exception?.values?.[0]?.type === "NetworkError") { return null; } return event; }, ignoreErrors: [ "ResizeObserver loop limit exceeded", /^Script error.?$/, ], denyUrls: [ /extensions//i, /^chrome:///i, ], });
Best Practices
-
Always set environment and release
-
Use environment variables for DSN
-
Configure appropriate sample rates for production
-
Filter noisy or irrelevant errors
-
Use framework-specific integrations
-
Initialize Sentry as early as possible