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.
8.18.0
Important Changes
- ref: Deprecate
enableTracing
(12897)
The enableTracing
option has been deprecated and will be removed in the next major version. We recommend removing it
in favor of the tracesSampleRate
and tracesSampler
options. If you want to enable performance monitoring, please set
the tracesSampleRate
to a sample rate of your choice, or provide a sampling function as tracesSampler
option
instead. If you want to disable performance monitoring, remove the tracesSampler
and tracesSampleRate
options.
Other Changes
- feat(node): Expose
exclude
and include
options for ESM loader (#12910) - feat(browser): Add user agent to INP standalone span attributes (#12896)
- feat(nextjs): Add
experimental_captureRequestError
for onRequestError
hook (#12885) - feat(replay): Bump
rrweb
to 2.25.0 (#12478) - feat(tracing): Add long animation frame tracing (#12646)
- fix: Cleanup hooks when they are not used anymore (#12852)
- fix(angular): Guard
ErrorEvent
check in ErrorHandler to avoid throwing in Node environments (#12892) - fix(inp): Ensure INP spans have correct transaction (#12871)
- fix(nestjs): Do not make SentryTraced() decorated functions async (#12879)
- fix(nextjs): Support automatic instrumentation for app directory with custom page extensions (#12858)
- fix(node): Ensure correct URL is passed to
ignoreIncomingRequests
callback (#12929) - fix(otel): Do not add
otel.kind: INTERNAL
attribute (#12841) - fix(solidstart): Set proper sentry origin for solid router integration when used in solidstart sdk (#12919)
- fix(sveltekit): Add Vite peer dep for proper type resolution (#12926)
- fix(tracing): Ensure you can pass
null
as parentSpan
in startSpan*
(#12928) - ref(core): Small bundle size improvement (#12830)
Work in this release was contributed by @GitSquared, @ziyadkhalil and @mcous. Thank you for your contributions!