Important Changes
- doc(sveltekit): Promote the SDK to beta state (#7976)
- feat(sveltekit): Convert
sentryHandle
to a factory function (#7975)
- feat(sveltekit): Convert
With this release, the Sveltekit SDK (@sentry/sveltekit) is promoted to Beta.
This means that we do not expect any more breaking changes.
The final breaking change is that sentryHandle
is now a function.
So in order to update to 7.50.0, you have to update your hooks.server.js
file:
// hooks.server.js
// Old:
export const handle = sentryHandle;
// New:
export const handle = sentryHandle();
- feat(replay): Allow to configure URLs to capture network bodies/headers (#7953)
You can now capture request/response bodies & headers of network requests in Replay.
You have to define an allowlist of URLs you want to capture additional information for:
new Replay({
networkDetailAllowUrls: ['https://sentry.io/api'],
});
By default, we will capture request/response bodies, as well as the request/response headers content-type
, content-length
and accept
.
You can configure this with some additional configuration:
new Replay({
networkDetailAllowUrls: ['https://sentry.io/api'],
// opt-out of capturing bodies
networkCaptureBodies: false,
// These headers are captured _in addition to_ the default headers
networkRequestHeaders: ['X-Custom-Header'],
networkResponseHeaders: ['X-Custom-Header', 'X-Custom-Header-2']
});
Note that bodies will be truncated to a max length of ~150k characters.
- feat(replay): Changes of sampling behavior & public API
- feat(replay): Change the behavior of error-based sampling (#7768)
- feat(replay): Change
flush()
API to record current event buffer (#7743) - feat(replay): Change
stop()
to flush and remove current session (#7741)
We have changed the behavior of error-based sampling, as well as adding & adjusting APIs a bit to be more aligned with expectations.
See Sampling for details.
We've also revamped some public APIs in order to be better aligned with expectations. See Stoping & Starting Replays manually for details.
- feat(core): Add multiplexed transport (#7926)
We added a new transport to support multiplexing.
With this, you can configure Sentry to send events to different DSNs, depending on a logic of your choosing:
import { makeMultiplexedTransport } from '@sentry/core';
import { init, captureException, makeFetchTransport } from '@sentry/browser';
function dsnFromFeature({ getEvent }) {
const event = getEvent();
switch(event?.tags?.feature) {
case 'cart':
return ['__CART_DSN__'];
case 'gallery':
return ['__GALLERY_DSN__'];
}
return []
}
init({
dsn: '__FALLBACK_DSN__',
transport: makeMultiplexedTransport(makeFetchTransport, dsnFromFeature)
});
Additional Features and Fixes
- feat(nextjs): Add
disableLogger
option that automatically tree shakes logger statements (#7908) - feat(node): Make Undici a default integration. (#7967)
- feat(replay): Extend session idle time until expire to 15min (#7955)
- feat(tracing): Add
db.system
span data to DB spans (#7952) - fix(core): Avoid crash when Function.prototype is frozen (#7899)
- fix(nextjs): Fix inject logic for Next.js 13.3.1 canary (#7921)
- fix(replay): Ensure console breadcrumb args are truncated (#7917)
- fix(replay): Ensure we do not set replayId on dsc if replay is disabled (#7939)
- fix(replay): Ensure we still truncate large bodies if they are failed JSON (#7923)
- fix(utils): default normalize() to a max. of 100 levels deep instead of Inifnity (#7957)
Work in this release contributed by @Jack-Works. Thank you for your contribution!
Bundle size 📦
Path | Size |
---|---|
@sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.02 KB |
@sentry/browser - ES5 CDN Bundle (minified) | 65.66 KB |
@sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.56 KB |
@sentry/browser - ES6 CDN Bundle (minified) | 58.12 KB |
@sentry/browser - Webpack (gzipped + minified) | 21.17 KB |
@sentry/browser - Webpack (minified) | 69.07 KB |
@sentry/react - Webpack (gzipped + minified) | 21.19 KB |
@sentry/nextjs Client - Webpack (gzipped + minified) | 49.03 KB |
@sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.59 KB |
@sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.82 KB |
@sentry/replay ES6 CDN Bundle (gzipped + minified) | 46.81 KB |
@sentry/replay - Webpack (gzipped + minified) | 40.59 KB |
@sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 65.62 KB |
@sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 58.57 KB |