Official Sentry SDK for Svelte

This SDK currently only supports Svelte apps in the browser. If you're using SvelteKit, we
recommend using our dedicated
Sentry SvelteKit SDK.
General
This package is a wrapper around @sentry/browser
, providing error monitoring and basic performance monitoring features
for Svelte.
To use the SDK, initialize Sentry in your Svelte entry point main.js
before you bootstrap your Svelte app:
import App from './App.svelte';
import * as Sentry from '@sentry/svelte';
Sentry.init({
dsn: '__DSN__',
release: 'my-project-name@2.3.12',
integrations: [Sentry.browserTracingIntegration()],
tracesSampleRate: 1.0,
});
const app = new App({
target: document.getElementById('app'),
});
export default app;
The Sentry Svelte SDK supports all features from the @sentry/browser
SDK. Until it becomes more stable, please refer
to the Sentry Browser SDK documentation for more information and usage
instructions.
Sourcemaps and Releases
To generate source maps of your Svelte app bundle, check our guide
how to configure your bundler to
emit source maps.
To create releases and upload source maps to
Sentry, we recommend using sentry-cli
. You can for instance create a bash
script to take care of creating a release, uploading source maps and finalizing the release:
#!/bin/bash
VERSION=<your version>
ORG=<your org-slug>
PROJECT=<your project-slug>
SOURCEMAPS_PATH=./dist
sentry-cli releases new $VERSION --org $ORG --project $PROJECT
sentry-cli releases files $VERSION upload-sourcemaps $SOURCEMAPS_PATH --org $ORG --project $PROJECT
sentry-cli releases finalize $VERSION --org $ORG --project $PROJECT
Please note that the paths provided in this example work for a typical Svelte project that adheres to the project
structure set by create-vite with the svelte(-ts)
template. If your
project setup differs from this template, your configuration may need adjustments. Please refer to our documentation of
Advanced sentry-cli
Sourcemaps Options and to
our Sourcemaps Troubleshooting Guide.
Check out our
Svelte source maps uploading guide
for more information.
9.39.0
Important Changes
- feat(browser): Add
afterStartPageloadSpan
hook to improve spanId assignment on web vital spans (#16893)
This PR adds a new afterStartPageloadSpan lifecycle hook to more robustly assign the correct pageload span ID to web vital spans, replacing the previous unreliable "wait for a tick" approach with a direct callback that fires when the pageload span becomes available.
- feat(nextjs): Client-side parameterized routes (#16934)
This PR implements client-side parameterized routes for Next.js by leveraging an injected manifest within the existing app-router instrumentation to automatically parameterize all client-side transactions (e.g. users/123
and users/456
now become become users/:id
).
- feat(node): Drop 401-404 and 3xx status code spans by default (#16972)
This PR changes the default behavior in the Node SDK to drop HTTP spans with 401-404 and 3xx status codes by default to reduce noise in tracing data.
Other Changes
- feat(core): Prepend vercel ai attributes with
vercel.ai.X
(#16908)
- feat(nextjs): Add
disableSentryWebpackConfig
flag (#17013)
- feat(nextjs): Build app manifest (#16851)
- feat(nextjs): Inject manifest into client for turbopack builds (#16902)
- feat(nextjs): Inject manifest into client for webpack builds (#16857)
- feat(node-native): Add option to disable event loop blocked detection (#16919)
- feat(react-router): Ensure http.server route handling is consistent (#16986)
- fix(core): Avoid prolonging idle span when starting standalone span (#16928)
- fix(core): Remove side-effect from
tracing/errors.ts
(#16888)
- fix(core): Wrap
beforeSendLog
in consoleSandbox
(#16968)
- fix(node-core): Apply correct SDK metadata (#17014)
- fix(react-router): Ensure that all browser spans have
source=route
(#16984)
Work in this release was contributed by @janpapenbrock. Thank you for your contribution!