Important Changes
-
feat(browser): Add
fetchStreamPerformanceIntegrationfor streamed response tracking (#20778)A new integration that tracks the performance of streamed fetch responses. Use this to measure time-to-first-byte and streaming duration for APIs that return chunked/streamed data. This replaces the now deprecated
trackFetchStreamPerformanceoption. -
feat(core): Add
dataCollectionclient option (#20965)Adds a new
dataCollectionclient option for controlling what data the SDK collects and sends to Sentry. This provides a centralized way to configure data collection behavior across different SDK features. In the future, this option will be used for fine-granular data filtering, while the simplesendDefaultPiiboolean option will be deprecated and removed in a future release. -
feat(core): Support array attributes for spans, logs, and metrics (#20427)
Arrays of primitive values (
string,number,boolean) are now accepted as attribute values. Arrays containing non-primitive elements will be dropped and won't show up in Sentry. Note that array attributes on logs and metrics were previously stringified in certain cases and will now be sent as arrays instead. -
feat(hono): Add
hono.requestspans for internal.request()calls (#20843)The Hono SDK now creates spans for internal
.request()calls, providing better visibility into request handling within Hono applications.
Other Changes
- feat(core): Add data collection filtering utilities (#20989)
- feat(core): Convert scope contexts to segment span attributes in span streaming (#20828)
- feat(core): Emit
sentry.sdk.integrationson streamed segment spans (#20428) - feat(core): HTTP server diagnostics channel utility (#20779)
- feat(core): Migrate span streaming envelope to
dataCollection(#21080) - feat(core): Migrate Supabase integration to
dataCollection(#21085) - feat(core): Migrate trpc to
dataCollection(#21072) - feat(deno): Instrument
node:httpon versions that support it (#21009) - feat(ember): Extract ember-specific logic into custom
browserTracingIntegration(#20702) - feat(logs): Migrate log envelope user inference to
dataCollection(#21073) - feat(nuxt): Allow custom configuration files paths in Nuxt module (#20650)
- feat(replay): Update example worker script (#20899)
- feat(serverless): Add server-only context span attributes via processSegmentSpan hooks (#20842)
- fix(astro): Avoid injecting meta tags into
<head>inside attribute values (#21089) - fix(astro): Use explicit ResponseInit when injecting meta tags in response (#21021)
- fix(browser): Add a synthetic stack trace to DOMException with empty stack traces if
attachStacktraceis true (#19988) - fix(browser): Fix internal frame detection in minified bundles (#20802)
- fix(cloudflare): Avoid repeated flush lock wrapping (#21156)
- fix(cloudflare): Skip SDK initialization for OPTIONS/HEAD requests (#21090)
- fix(cloudflare, vercel-edge): Disable timer-based flush for serverless runtimes (#20889)
- fix(core): Sanitize lone surrogates in log body and attributes (#20245)
- fix(deno): Support
Deno.serveinstrumentation on Deno 2.8 (#21155) - fix(hono): Preserve middleware handler metadata (#20954)
- fix(hono): Use generic Hono type in Bun/Node (#21060)
- fix(nextjs): Widen
projectoption type tostring | string[](#21067) - fix(node): Improve
http.clientdouble-wrap message (#20705) - fix(node): Preserve CallbackManager handlers in LangChain instrumentation (#20849)
- fix(react-router): Do not re-write origin on router state changes (#21056)
- fix(replay): Set
sentry.replay_idattribute on streamed spans (#20897) - fix(replay): Set
replay_idon DSC after buffer-to-session conversion (#20686) - fix(solidstart): Use nitro module for build hooks to preserve preset hooks (#20861)
- ref(core): Rename
types-hoisttotypes(#20979)
Internal Changes
- chore: Add compatibility function for
sendDefaultPii(#20967) - chore: Add size-limit for core/server, core/browser (#20990)
- chore: Bump rrweb deps to v2.43.0 (#20844)
- chore(build): Replace sucrase with esbuild (#20865)
- chore(deps): Bump nitropack from 2.13.1 to 2.13.4 (#20713)
- chore(deps): Bump ws from 8.20.0 to 8.20.1 (#20998)
- chore(deps): Remove redundant yarn resolutions (#20877)
- feat(deps): Bump @tootallnate/once from 1.1.2 to 2.0.1 (#21108)
- feat(deps): Bump devalue from 4.3.3 to 5.8.1 (#20893)
- feat(deps): Bump protobufjs from 7.5.5 to 7.5.9 (#20846)
- ref(aws-serverless): Vendor aws-sdk instrumentation (#20988)
- ref(http): Use shared snippets for filtering headers and cookies (#20970)
- ref(nestjs): Vendor nestjs-core instrumentation (#20996)
- ref(node): Remove unused
@opentelemetry/instrumentation-httpdependency (#21113) - ref(node): Vendor
@fastify/otel(#21099) - ref(node): Vendor
@opentelemetry/instrumentation-pg(#21102) - ref(node): Vendor
@opentelemetry/sql-common(#21140) - ref(node): Vendor
@prisma/instrumentation(#21098) - ref(node): Vendor amqplib instrumentation (#21003)
- ref(node): Vendor connect instrumentation (#20955)
- ref(node): Vendor dataloader instrumentation (#20950)
- ref(node): Vendor fs instrumentation (#20964)
- ref(node): Vendor generic-pool instrumentation (#20949)
- ref(node): Vendor graphql instrumentation (#21096)
- ref(node): Vendor hapi instrumentation (#21057)
- ref(node): Vendor kafkajs instrumentation (#21005)
- ref(node): Vendor knex instrumentation (#20963)
- ref(node): Vendor koa instrumentation (#20956)
- ref(node): Vendor lru-memoizer instrumentation (#20948)
- ref(node): Vendor minimal types for dataloader and generic-pool instrumentations (#21013)
- ref(node): Vendor mongodb instrumentation (#20966)
- ref(node): Vendor mongoose instrumentation (#21058)
- ref(node): Vendor mysql instrumentation (#21016)
- ref(node): Vendor mysql2 instrumentation (#21031)
- ref(node): Vendor tedious instrumentation (#21010)
Work in this release was contributed by @abcang, @ahmadio, @delorge, @mdnanocom, and @victorgarciaesgi. Thank you for your contributions!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser | 26.68 KB |
| @sentry/browser - with treeshaking flags | 25.13 KB |
| @sentry/browser (incl. Tracing) | 44.25 KB |
| @sentry/browser (incl. Tracing + Span Streaming) | 46.44 KB |
| @sentry/browser (incl. Tracing, Profiling) | 49.12 KB |
| @sentry/browser (incl. Tracing, Replay) | 82.93 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 72.68 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 87.53 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 99.85 KB |
| @sentry/browser (incl. Feedback) | 43.46 KB |
| @sentry/browser (incl. sendFeedback) | 31.38 KB |
| @sentry/browser (incl. FeedbackAsync) | 36.38 KB |
| @sentry/browser (incl. Metrics) | 27.74 KB |
| @sentry/browser (incl. Logs) | 27.97 KB |
| @sentry/browser (incl. Metrics & Logs) | 28.65 KB |
| @sentry/react | 28.37 KB |
| @sentry/react (incl. Tracing) | 46.43 KB |
| @sentry/vue | 31.49 KB |
| @sentry/vue (incl. Tracing) | 46.07 KB |
| @sentry/svelte | 26.71 KB |
| CDN Bundle | 29.03 KB |
| CDN Bundle (incl. Tracing) | 46.72 KB |
| CDN Bundle (incl. Logs, Metrics) | 30.48 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) | 47.94 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) | 68.88 KB |
| CDN Bundle (incl. Tracing, Replay) | 83.34 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) | 84.47 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 89.07 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) | 90.21 KB |
| CDN Bundle - uncompressed | 85.75 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 140.91 KB |
| CDN Bundle (incl. Logs, Metrics) - uncompressed | 90.13 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed | 144.58 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed | 211.93 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 256.91 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed | 260.56 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 270.28 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed | 273.93 KB |
| @sentry/nextjs (client) | 48.86 KB |
| @sentry/sveltekit (client) | 44.73 KB |
| @sentry/core/server | 74.69 KB |
| @sentry/core/browser | 61.75 KB |
| @sentry/node-core | 61.12 KB |
| @sentry/node | 128.03 KB |
| @sentry/node - without tracing | 73.26 KB |
| @sentry/aws-serverless | 85.2 KB |
| @sentry/cloudflare (withSentry) - minified | 169.45 KB |
| @sentry/cloudflare (withSentry) | 423.36 KB |