Skip to content

Update dependency @sentry/node --> v7.116.0 - autoclosed

FW Serviceworker requested to merge dependencies/sentry-node-7.x-lockfile into main

This MR contains the following updates:

Package Change Age Adoption Passing Confidence
@sentry/node (source) 7.64.0 -> 7.116.0 age adoption passing confidence

Release Notes

getsentry/sentry-javascript (@​sentry/node)

v7.116.0

Compare Source

This release publishes a new AWS Lambda layer under the name SentryNodeServerlessSDKv7 that users still running v7 can use instead of pinning themselves to SentryNodeServerlessSDK:235.

Bundle size 📦

Path Size
@​sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped) 80.83 KB
@​sentry/browser (incl. Tracing, Replay) - Webpack (gzipped) 71.77 KB
@​sentry/browser (incl. Tracing, Replay with Canvas) - Webpack (gzipped) 76.02 KB
@​sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped) 65.38 KB
@​sentry/browser (incl. Tracing) - Webpack (gzipped) 35.64 KB
@​sentry/browser (incl. browserTracingIntegration) - Webpack (gzipped) 35.53 KB
@​sentry/browser (incl. Feedback) - Webpack (gzipped) 31.6 KB
@​sentry/browser (incl. sendFeedback) - Webpack (gzipped) 31.61 KB
@​sentry/browser - Webpack (gzipped) 22.78 KB
@​sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped) 79.04 KB
@​sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped) 70.37 KB
@​sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped) 36.05 KB
@​sentry/browser - ES6 CDN Bundle (gzipped) 25.28 KB
@​sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed) 221.49 KB
@​sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed) 109.08 KB
@​sentry/browser - ES6 CDN Bundle (minified & uncompressed) 75.81 KB
@​sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped) 39.33 KB
@​sentry/react (incl. Tracing, Replay) - Webpack (gzipped) 72.27 KB
@​sentry/react - Webpack (gzipped) 22.81 KB
@​sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped) 90.03 KB
@​sentry/nextjs Client - Webpack (gzipped) 54.15 KB
@​sentry-internal/feedback - Webpack (gzipped) 17.34 KB

v7.115.0

Compare Source

  • feat(v7): Add support for global onUnhandled Error/Promise for Bun (#​11959)
  • fix(replay/v7): Fix user activity not being updated in start() (#​12003)
  • ref(api): Remove lastEventId deprecation warnings (#​12042)

Bundle size 📦

Path Size
@​sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped) 80.83 KB
@​sentry/browser (incl. Tracing, Replay) - Webpack (gzipped) 71.77 KB
@​sentry/browser (incl. Tracing, Replay with Canvas) - Webpack (gzipped) 76.02 KB
@​sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped) 65.38 KB
@​sentry/browser (incl. Tracing) - Webpack (gzipped) 35.64 KB
@​sentry/browser (incl. browserTracingIntegration) - Webpack (gzipped) 35.53 KB
@​sentry/browser (incl. Feedback) - Webpack (gzipped) 31.6 KB
@​sentry/browser (incl. sendFeedback) - Webpack (gzipped) 31.61 KB
@​sentry/browser - Webpack (gzipped) 22.78 KB
@​sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped) 79.04 KB
@​sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped) 70.37 KB
@​sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped) 36.05 KB
@​sentry/browser - ES6 CDN Bundle (gzipped) 25.28 KB
@​sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed) 221.49 KB
@​sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed) 109.08 KB
@​sentry/browser - ES6 CDN Bundle (minified & uncompressed) 75.81 KB
@​sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped) 39.33 KB
@​sentry/react (incl. Tracing, Replay) - Webpack (gzipped) 72.27 KB
@​sentry/react - Webpack (gzipped) 22.81 KB
@​sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped) 90.03 KB
@​sentry/nextjs Client - Webpack (gzipped) 54.15 KB
@​sentry-internal/feedback - Webpack (gzipped) 17.34 KB

v7.114.0

Compare Source

Important Changes
  • fix(browser/v7): Continuously record CLS (#​11935)

This release fixes a bug that caused the cumulative layout shift (CLS) web vital not to be reported in a majority of the cases where it should have been reported. With this change, the CLS web vital should now always be reported for pageloads with layout shift. If a pageload did not have layout shift, no CLS web vital should be reported.

Please note that upgrading the SDK to this version may cause data in your dashboards to drastically change.

Other Changes
  • build(aws-lambda/v7): Turn off lambda layer publishing (#​11875)
  • feat(v7): Add tunnel support to multiplexed transport (#​11851)
  • fix(opentelemetry-node): support HTTP_REQUEST_METHOD attribute (#​11929)
  • fix(react/v7): Fix react router v4/v5 span names (#​11940)

v7.113.0

Compare Source

Important Changes

This release adds support for Node 22! 🎉

It also adds prebuilt-binaries for Node 22 to @sentry/profiling-node.

Other Changes
  • feat(feedback): [v7] New feedback button design (#​11841)
  • feat(replay/v7): Upgrade rrweb packages to 2.15.0 (#​11752)
  • fix(ember/v7): Ensure unnecessary spans are avoided (#​11848)

v7.112.2

Compare Source

  • fix(nextjs|sveltekit): Ensure we can pass browserTracingIntegration (#​11765)

v7.112.1

Compare Source

  • fix(ember/v7): Do not create rendering spans without transaction (#​11750)

v7.112.0

Compare Source

Important Changes
  • feat: Export pluggable integrations from SDK packages (#​11723)

Instead of installing @sentry/integrations, you can now import the pluggable integrations directly from your SDK package:

// Before
import * as Sentry fromv '@​sentry/browser';
import { dedupeIntegration } from '@​sentry/integrations';

Sentry.init({
  integrations: [dedupeIntegration()],
});

// After
import * as Sentry from '@​sentry/browser';

Sentry.init({
  integrations: [Sentry.dedupeIntegration()],
});

Note that only the functional integrations (e.g. xxxIntegration()) are re-exported.

Other Changes
  • feat(replay): Add "maxCanvasSize" option for replay canvases (#​11732)
  • fix(serverless): [v7] Check if cloud event callback is a function (#​11734)

v7.111.0

Compare Source

  • feat(core): Add server.address to browser http.client spans (#​11663)
  • fix: Ensure next & sveltekit correctly handle browserTracingIntegration (#​11647)
  • fix(browser): Don't assume window.document is available (#​11598)

v7.110.1

Compare Source

  • fix(nextjs): Fix tunnelRoute matching logic for hybrid cloud (#​11577)

v7.110.0

Compare Source

Important Changes
  • feat(tracing): Add interactions sample rate to browser tracing integrations (#​11382)

You can now use a interactionsSampleRate to control the sample rate of INP spans. interactionsSampleRate is applied on top of the global tracesSampleRate. Therefore if interactionsSampleRate is 0.5 and tracesSampleRate is 0.1, then the actual sample rate for interactions is 0.05.

Sentry.init({
  tracesSampleRate: 0.1,
  integrations: [
    Sentry.browserTracingIntegration({
      interactionsSampleRate: 0.5,
    }),
  ],
});
  • Deprecations

This release deprecates the Hub class, as well as the addRequestDataToTransaction method. The trpcMiddleware method is no longer on the Handlers export, but instead is a standalone export.

Please see the detailed Migration docs on how to migrate to the new APIs.

  • feat: Deprecate and relocate trpcMiddleware (#​11389)
  • feat(core): Deprecate Hub class (#​11528)
  • feat(types): Deprecate Hub interface (#​11530)
  • ref: Deprecate addRequestDataToTransaction (#​11368)
Other Changes
  • feat(core): Update metric normalization (#​11519)
  • feat(feedback): Customize feedback placeholder text color (#​11521)
  • feat(remix): Skip span creation for OPTIONS and HEAD request. (#​11485)
  • feat(utils): Add metric buckets rate limit (#​11506)
  • fix(core): unref timer to not block node exit (#​11483)
  • fix(metrics): Map statsd to metric_bucket (#​11505)
  • fix(spans): Allow zero exclusive time for INP spans (#​11408)
  • ref(feedback): Configure feedback fonts (#​11520)

v7.109.0

Compare Source

This release deprecates some exports from the @sentry/replay package. These exports have been moved to the browser SDK (or related framework SDKs like @sentry/react).

  • feat(feedback): Make "required" text for input elements configurable (#​11287)
  • feat(node): Add scope to ANR events (#​11267)
  • feat(replay): Bump rrweb to 2.12.0 (#​11317)
  • fix(node): Local variables skipped after Promise (#​11248)
  • fix(node): Skip capturing Hapi Boom error responses (#​11324)
  • fix(web-vitals): Check for undefined navigation entry (#​11312)
  • ref(replay): Deprecate @sentry/replay exports (#​11242)

Work in this release contributed by @​soerface. Thank you for your contribution!

v7.108.0

Compare Source

This release fixes issues with Time to First Byte (TTFB) calculation in the SDK that was introduced with 7.95.0. It also fixes some bugs with Interaction to First Paint (INP) instrumentation. This may impact your Sentry Performance Score calculation.

  • feat(serverless): Add Node.js 20 to compatible runtimes (#​11104)
  • feat(core): Backport ResizeObserver and googletag default filters (#​11210)
  • feat(webvitals): Adds event entry names for INP handler. Also guard against empty metric value
  • fix(metrics): use correct statsd data category (#​11187)
  • fix(node): Record local variables with falsy values (v7) (#​11190)
  • fix(node): Use unique variable for ANR context transfer (v7) (#​11162)
  • fix(node): Time zone handling for cron (#​11225)
  • fix(tracing): use web-vitals ttfb calculation (#​11231)
  • fix(types): Fix incorrect sampled type on Transaction (#​11146)
  • fix(webvitals): Fix mapping not being maintained properly and sometimes not sending INP spans (#​11183)

Work in this release contributed by @​quisido and @​joshkel. Thank you for your contributions!

v7.107.0

Compare Source

This release fixes issues with INP instrumentation with the Next.js SDK and adds support for the enableInp option in the deprecated BrowserTracing integration for backwards compatibility.

  • feat(performance): Port INP span instrumentation to old browser tracing (#​11085)
  • fix(ember): Ensure browser tracing is correctly lazy loaded (#​11027)
  • fix(node): Do not assert in vendored proxy code (v7 backport) (#​11009)
  • fix(react): Set handled value in ErrorBoundary depending on fallback [v7] (#​11037)

v7.106.1

Compare Source

  • fix(nextjs/v7): Use passthrough createReduxEnhancer on server (#​11010)

v7.106.0

Compare Source

  • feat(nextjs): Support Hybrid Cloud DSNs with tunnelRoute option (#​10958)
  • feat(remix): Add Vite dev-mode support to Express instrumentation (#​10811)
  • fix(core): Undeprecate setTransactionName
  • fix(browser): Don't use chrome variable name (#​10874)
  • fix(nextjs): Client code should not use Node global (#​10925)
  • fix(node): support undici headers as strings or arrays (#​10938)
  • fix(types): Add AttachmentType and use for envelope attachment_type property (#​10946)
  • ref(ember): Avoid namespace import to hopefully resolve minification issue (#​10885)
  • chore(sveltekit): Fix punctuation in a console.log (#​10895)

Work in this release contributed by @​jessezhang91 and @​bfontaine. Thank you for your contributions!

v7.105.0

Compare Source

Important Changes
  • feat: Ensure withActiveSpan is exported everywhere (#​10877)

You can use the withActiveSpan method to ensure a certain span is the active span in a given callback. This can be used to create a span as a child of a specific span with the startSpan API methods:

const parentSpan = Sentry.startInactiveSpan({ name: 'parent' });
if (parentSpan) {
  withActiveSpan(parentSpan, () => {
    // This will be a direct child of parentSpan
    const childSpan = Sentry.startInactiveSpan({ name: 'child' });
  });
}

v7.104.0

Compare Source

Important Changes
  • feat(performance): create Interaction standalone spans on inp events (#​10709)

This release adds support for the INP web vital. This is currently only supported for Saas Sentry, and product support is released with the upcoming 24.3.0 release of self-hosted.

To opt-in to this feature, you can use the enableInp option in the browserTracingIntegration:

Sentry.init({
  integrations: [
    Sentry.browserTracingIntegration({
      enableInp: true,
    });
  ]
})
Other Changes
  • feat(feedback): Flush replays when feedback form opens (#​10567)
  • feat(profiling-node): Expose nodeProfilingIntegration (#​10864)
  • fix(profiling-node): Fix dependencies to point to current versions (#​10861)
  • fix(replay): Add errorHandler for replayCanvas integration (#​10796)

v7.103.0

Compare Source

Important Changes
  • feat(core): Allow to pass forceTransaction to startSpan() APIs (#​10819)

You can now pass forceTransaction: true to startSpan(), startSpanManual() and startInactiveSpan(). This allows you to start a span that you want to be a transaction, if possible. Under the hood, the SDK will connect this span to the running active span (if there is one), but still send the new span as a transaction to the Sentry backend, if possible, ensuring it shows up as a transaction throughout the system.

Please note that setting this to true does not guarantee that this will be sent as a transaction, but that the SDK will try to do so. You can enable this flag if this span is important to you and you want to ensure that you can see it in the Sentry UI.

Other Changes
  • fix: Make breadcrumbs option optional in WinterCGFetch integration (#​10792)

v7.102.1

Compare Source

  • fix(performance): Fixes latest route name and source for interactions not updating properly on navigation (#​10702)
  • fix(tracing): Guard against missing window.location (#​10659)
  • ref: Make span types more robust (#​10660)
  • ref(remix): Make @remix-run/router a dependency (v7) (#​10779)

v7.102.0

Compare Source

  • fix: Export session API (#​10712)
  • fix(core): Fix scope capturing via captureContext function (#​10737)

v7.101.1

Compare Source

In version 7.101.0 the @sentry/hub package was missing due to a publishing issue. This release contains the package again.

  • fix(nextjs): Remove webpack:// prefix more broadly from source map sources field (#​10641)

v7.101.0

Compare Source

  • feat: Export semantic attribute keys from SDK packages (#​10637)
  • feat(core): Add metric summaries to spans (#​10554)
  • feat(core): Deprecate the Hub constructor (#​10584)
  • feat(core): Make custom tracing methods return spans & set default op (#​10633)
  • feat(replay): Add getReplay utility function (#​10510)
  • fix(angular-ivy): Add exports field to package.json (#​10569)
  • fix(sveltekit): Avoid capturing Http 4xx errors on the client (#​10571)
  • fix(sveltekit): Properly await sourcemaps flattening (#​10602)

v7.100.1

Compare Source

This release contains build fixes for profiling-node.

  • build(profiling-node): make sure debug build plugin is used #​10534
  • build: Only run profiling e2e test if bindings have changed #​10542
  • fix(feedback): Replay breadcrumb for feedback events was incorrect #​10536

v7.100.0

Compare Source

Important Changes
Deprecations

This release includes some deprecations. For more details please look at our migration guide.

The deprecation most likely to affect you is the one of BrowserTracing. Instead of new BrowserTracing(), you should now use browserTracingIntegration(), which will also handle framework-specific instrumentation out of the box for you - no need to pass a custom routingInstrumentation anymore. For @sentry/react, we expose dedicated integrations for the different react-router versions:

  • reactRouterV6BrowserTracingIntegration()
  • reactRouterV5BrowserTracingIntegration()
  • reactRouterV4BrowserTracingIntegration()
  • reactRouterV3BrowserTracingIntegration()

See the migration guide for details.

  • feat(angular): Export custom browserTracingIntegration() (#​10353)
  • feat(browser): Deprecate BrowserTracing integration (#​10493)
  • feat(browser): Export browserProfilingIntegration (#​10438)
  • feat(bun): Export bunServerIntegration() (#​10439)
  • feat(nextjs): Add browserTracingIntegration (#​10397)
  • feat(react): Add reactRouterV3BrowserTracingIntegration for react router v3 (#​10489)
  • feat(react): Add reactRouterV4/V5BrowserTracingIntegration for react router v4 & v5 (#​10488)
  • feat(react): Add reactRouterV6BrowserTracingIntegration for react router v6 & v6.4 (#​10491)
  • feat(remix): Add custom browserTracingIntegration (#​10442)
  • feat(node): Expose functional integrations to replace classes (#​10356)
  • feat(vercel-edge): Replace WinterCGFetch with winterCGFetchIntegration (#​10436)
  • feat: Deprecate non-callback based continueTrace (#​10301)
  • feat(vue): Deprecate new VueIntegration() (#​10440)
  • feat(vue): Implement vue browserTracingIntegration() (#​10477)
  • feat(sveltekit): Add custom browserTracingIntegration() (#​10450)
Profiling Node

@sentry/profiling-node has been ported into the monorepo. Future development for it will happen here!

  • pkg(profiling-node): port profiling-node repo to monorepo (#​10151)
Other Changes
  • feat: Export setHttpStatus from all packages (#​10475)
  • feat(bundles): Add pluggable integrations on CDN to Sentry namespace (#​10452)
  • feat(core): Pass name & attributes to tracesSampler (#​10426)
  • feat(feedback): Add system-ui to start of font family (#​10464)
  • feat(node-experimental): Add koa integration (#​10451)
  • feat(node-experimental): Update opentelemetry packages (#​10456)
  • feat(node-experimental): Update tracing integrations to functional style (#​10443)
  • feat(replay): Bump rrweb to 2.10.0 (#​10445)
  • feat(replay): Enforce masking of credit card fields (#​10472)
  • feat(utils): Add propagationContextFromHeaders (#​10313)
  • fix: Make startSpan, startSpanManual and startInactiveSpan pick up the scopes at time of creation instead of termination (#​10492)
  • fix(feedback): Fix logo color when colorScheme is "system" (#​10465)
  • fix(nextjs): Do not report redirects and notFound calls as errors in server actions (#​10474)
  • fix(nextjs): Fix navigation tracing on app router (#​10502)
  • fix(nextjs): Apply server action data to correct isolation scope (#​10514)
  • fix(node): Use normal require call to import Undici (#​10388)
  • ref(nextjs): Remove internally used deprecated APIs (#​10453)
  • ref(vue): use startInactiveSpan in tracing mixin (#​10406)

v7.99.0

Compare Source

Important Changes
Deprecations

This release includes some deprecations for span related methods and integrations in our Deno SDK, @sentry/deno. For more details please look at our migration guide.

  • feat(core): Deprecate Span.setHttpStatus in favor of setHttpStatus (#​10268)
  • feat(core): Deprecate spanStatusfromHttpCode in favour of getSpanStatusFromHttpCode (#​10361)
  • feat(core): Deprecate StartSpanOptions.origin in favour of passing attribute (#​10274)
  • feat(deno): Expose functional integrations to replace classes (#​10355)
Other Changes
  • feat(bun): Add missing @sentry/node re-exports (#​10396)
  • feat(core): Add afterAllSetup hook for integrations (#​10345)
  • feat(core): Ensure startSpan() can handle spans that require parent (#​10386)
  • feat(core): Read propagation context off scopes in startSpan APIs (#​10300)
  • feat(remix): Export missing @sentry/node functions (#​10385, #​10391)
  • feat(serverless): Add missing @sentry/node re-exports (#​10390)
  • feat(sveltekit): Add more missing @sentry/node re-exports (#​10392)
  • feat(tracing): Export proper type for browser tracing (#​10411)
  • feat(tracing): Expose new browserTracingIntegration (#​10351)
  • fix: Ensure afterAllSetup is called when using addIntegration() (#​10372)
  • fix(core): Export spanToTraceContext function from span utils (#​10364)
  • fix(core): Make FunctionToString integration use SETUP_CLIENTS weakmap (#​10358)
  • fix(deno): Call function if client is not setup (#​10354)
  • fix(react): Fix attachReduxState option (#​10381)
  • fix(spotlight): Use unpatched http.request (#​10369)
  • fix(tracing): Only create request span if there is active span (#​10375)
  • ref: Read propagation context off of scope and isolation scope when propagating and applying trace context (#​10297)

Work in this release contributed by @​AleshaOleg. Thank you for your contribution!

v7.98.0

Compare Source

This release primarily fixes some type declaration errors:

  • feat(core): Export IntegrationIndex type (#​10337)
  • fix(nextjs): Fix Http integration type declaration (#​10338)
  • fix(node): Fix type definitions (#​10339)

v7.97.0

Compare Source

Note: The 7.96.0 release was incomplete. This release is partially encompassing changes from 7.96.0.

  • feat(react): Add stripBasename option for React Router 6 (#​10314)

v7.96.0

Compare Source

Note: This release was incomplete. Not all Sentry SDK packages were released for this version. Please upgrade to 7.98.0 directly.

Important Changes
Deprecations

This release includes some deprecations for integrations in @sentry/browser and frontend framework SDKs (@sentry/react, @sentry/vue, etc.). Please take a look at our migration guide for more details.

  • feat(browser): Export functional integrations & deprecate classes (#​10267)
Web Vitals Fix for LCP and CLS

This release fixes an issue with the Web Vitals integration where LCP and CLS were not being captured correctly, increasing capture rate by 10-30% for some apps. LCP and CLS capturing issues were introduced with version 7.75.0.

  • fix(tracing): Ensure web vitals are correctly stopped/captured (#​10323)
Other Changes
  • fix(node): Fix node-cron types and add test (#​10315)
  • fix(node): Fix downleveled types entry point (#​10321)
  • fix(node): LocalVariables integration should use setupOnce (#​10307)
  • fix(replay): Fix type for options of replayIntegration (#​10325)

Work in this release contributed by @​Shubhdeep12. Thank you for your contribution!

v7.95.0

Compare Source

Important Changes
Deprecations

This release includes some deprecations in preparation for v8.

Most notably, it deprecates the Replay & Feedback classes in favor of a functional replacement:

import * as Sentry from '@​sentry/browser';

Sentry.init({
  integrations: [
    // Instead of
    new Sentry.Replay(),
    new Sentry.Feedback(),
    // Use the functional replacement:
    Sentry.replayIntegration(),
    Sentry.feedbackIntegration(),
  ],
});
  • feat(core): Deprecate Span.origin in favor of sentry.origin attribute (#​10260)
  • feat(core): Deprecate Span.parentSpanId (#​10244)
  • feat(core): Expose isInitialized() to replace checking via getClient (#​10296)
  • feat(replay): Deprecate Replay, ReplayCanvas, Feedback classes (#​10270)
  • feat(wasm): Deprecate Wasm integration class (#​10230)
Other Changes
  • feat: Make parameterize function available through browser and node API (#​10085)
  • feat(feedback): Configure feedback border radius (#​10289)
  • feat(sveltekit): Update default integration handling & deprecate addOrUpdateIntegration (#​10263)
  • fix(replay-canvas): Add missing dependency on @​sentry/utils (#​10279)
  • fix(tracing): Don't send negative ttfb (#​10286)

Work in this release contributed by @​AleshaOleg. Thank you for your contribution!

v7.94.1

Compare Source

This release fixes a publishing issue.

v7.93.0

Compare Source

Important Changes
Deprecations

As we're moving closer to the next major version of the SDK, more public APIs were deprecated.

To get a head start on migrating to the replacement APIs, please take a look at our migration guide.

  • feat(core): Deprecate getActiveTransaction() & scope.getTransaction() (#​10098)
  • feat(core): Deprecate Hub.shouldSendDefaultPii (#​10062)
  • feat(core): Deprecate new Transaction() (#​10125)
  • feat(core): Deprecate scope.getSpan() & scope.setSpan() (#​10114)
  • feat(core): Deprecate scope.setTransactionName() (#​10113)
  • feat(core): Deprecate span.startChild() (#​10091)
  • feat(core): Deprecate startTransaction() (#​10073)
  • feat(core): Deprecate Transaction.getDynamicSamplingContext in favor of getDynamicSamplingContextFromSpan (#​10094)
  • feat(core): Deprecate arguments for startSpan() (#​10101)
  • feat(core): Deprecate hub capture APIs and add them to Scope (#​10039)
  • feat(core): Deprecate session APIs on hub and add global replacements (#​10054)
  • feat(core): Deprecate span name and description (#​10056)
  • feat(core): Deprecate span tags, data, context & setters (#​10053)
  • feat(core): Deprecate transaction metadata in favor of attributes (#​10097)
  • feat(core): Deprecate span.sampled in favor of span.isRecording() (#​10034)
  • ref(node-experimental): Deprecate lastEventId on scope (#​10093)
Cron Monitoring Support for node-schedule library

This release adds auto instrumented check-ins for the node-schedule library.

import * as Sentry from '@​sentry/node';
import * as schedule from 'node-schedule';

const scheduleWithCheckIn = Sentry.cron.instrumentNodeSchedule(schedule);

const job = scheduleWithCheckIn.scheduleJob('my-cron-job', '* * * * *', () => {
  console.log('You will see this message every minute');
});
  • feat(node): Instrumentation for node-schedule library (#​10086)
Other Changes
  • feat(core): Add span.spanContext() (#​10037)
  • feat(core): Add spanToJSON() method to get span properties (#​10074)
  • feat(core): Allow to pass scope to startSpan APIs (#​10076)
  • feat(core): Allow to pass start/end timestamp for spans flexibly (#​10060)
  • feat(node): Make getModuleFromFilename compatible with ESM (#​10061)
  • feat(replay): Update rrweb to 2.7.3 (#​10072)
  • feat(utils): Add parameterize function (#​9145)
  • fix(astro): Use correct package name for CF (#​10099)
  • fix(core): Do not run setup for integration on client multiple times (#​10116)
  • fix(core): Ensure we copy passed in span data/tags/attributes (#​10105)
  • fix(cron): Make name required for instrumentNodeCron option (#​10070)
  • fix(nextjs): Don't capture not-found and redirect errors in generation functions (#​10057)
  • fix(node): LocalVariables integration should have correct name (#​10084)
  • fix(node): Anr events should have an event_id (#​10068)
  • fix(node): Revert to only use sync debugger for LocalVariables (#​10077)
  • fix(node): Update ANR min node version to v16.17.0 (#​10107)

v7.92.0

Compare Source

Important Changes
Deprecations
  • feat(core): Add span.updateName() and deprecate span.setName() (#​10018)
  • feat(core): Deprecate span.getTraceContext() (#​10032)
  • feat(core): Deprecate span.toTraceparent() in favor of spanToTraceHeader() util (#​10031)
  • feat(core): Deprecate trace in favor of startSpan (#​10012)
  • feat(core): Deprecate span toContext() and updateWithContext() (#​10030)
  • ref: Deprecate deepReadDirSync (#​10016)
  • ref: Deprecate lastEventId() (#​10043)

Please take a look at the Migration docs for more details. These methods will be removed in the upcoming v8 major release.

Cron Monitoring Support for cron and node-cron libraries
  • feat(node): Instrumentation for cron library (#​9999)
  • feat(node): Instrumentation for node-cron library (#​9904)

This release adds instrumentation for the cron and node-cron libraries. This allows you to monitor your cron jobs with Sentry cron monitors.

For cron:

import * as Sentry from '@​sentry/node';
import { CronJob } from 'cron';

const CronJobWithCheckIn = Sentry.cron.instrumentCron(CronJob, 'my-cron-job');

// use the constructor
const job = new CronJobWithCheckIn('* * * * *', () => {
  console.log('You will see this message every minute');
});

// or from
const job = CronJobWithCheckIn.from({
  cronTime: '* * * * *',
  onTick: () => {
    console.log('You will see this message every minute');
  },
});

For node-cron:

import * as Sentry from '@​sentry/node';
import cron from 'node-cron';

const cronWithCheckIn = Sentry.cron.instrumentNodeCron(cron);

cronWithCheckIn.schedule(
  '* * * * *',
  () => {
    console.log('running a task every minute');
  },
  { name: 'my-cron-job' },
);
Other Changes
  • feat(astro): Add enabled option to Astro integration options (#​10007)
  • feat(core): Add attributes to Span (#​10008)
  • feat(core): Add setClient() and getClient() to Scope (#​10055)
  • feat(integrations): Capture error cause with captureErrorCause in ExtraErrorData integration (#​9914)
  • feat(node-experimental): Allow to pass base span options to trace methods (#​10006)
  • feat(node): Local variables via async inspector in node 19+ (#​9962)
  • fix(astro): handle commonjs related issues (#​10042)
  • fix(astro): Handle non-utf8 encoded streams in middleware (#​9989)
  • fix(astro): prevent sentry from externalized (#​9994)
  • fix(core): Ensure withScope sets current scope correctly with async callbacks (#​9974)
  • fix(node): ANR fixes and additions (#​9998)
  • fix(node): Anr should not block exit (#​10035)
  • fix(node): Correctly resolve module name (#​10001)
  • fix(node): Handle inspector already open (#​10025)
  • fix(node): Make NODE_VERSION properties required (#​9964)
  • fix(node): Anr doesn't block exit (#​10064)
  • fix(utils): use correct typeof URL validation (#​10028)
  • perf(astro): reduce unnecessary path resolutions (#​10021)
  • ref(astro): Use astro logger instead of console (#​9995)
  • ref(remix): Isolate Express instrumentation from server auto-instrumentation. (#​9966)

Work in this release contributed by @​joshkel. Thank you for your contribution!

v7.91.0

Compare Source

Important Changes
  • feat: Add server runtime metrics aggregator (#​9894)

The release adds alpha support for Sentry developer metrics in the server runtime SDKs (@sentry/node, @sentry/deno, @sentry/nextjs server-side, etc.). Via the newly introduced APIs, you can now flush metrics directly to Sentry.

To enable capturing metrics, you first need to add the metricsAggregator experiment to your Sentry.init call.

Sentry.init({
  dsn: '__DSN__',
  _experiments: {
    metricsAggregator: true,
  },
});

Then you'll be able to add counters, sets, distributions, and gauges under the Sentry.metrics namespace.

// Add 4 to a counter named `hits`
Sentry.metrics.increment('hits', 4);

// Add 2 to gauge named `parallel_requests`, tagged with `type: "a"`
Sentry.metrics.gauge('parallel_requests', 2, { tags: { type: 'a' } });

// Add 4.6 to a distribution named `response_time` with unit seconds
Sentry.metrics.distribution('response_time', 4.6, { unit: 'seconds' });

// Add 2 to a set named `valuable.ids`
Sentry.metrics.set('valuable.ids', 2);
  • feat(node): Rework ANR to use worker script via an integration (#​9945)

The ANR tracking integration for Node has been reworked to use an integration. ANR tracking now requires a minimum Node version of 16 or higher. Previously you had to call Sentry.enableANRDetection before running your application, now you can simply add the Anr integration to your Sentry.init call.

import * as Sentry from '@​sentry/node';

Sentry.init({
  dsn: 'https://public@dsn.ingest.sentry.io/1337',
  integrations: [new Sentry.Integrations.Anr({ captureStackTrace: true, anrThreshold: 200 })],
});
Other Changes
  • feat(breadcrumbs): Send component names on UI breadcrumbs (#​9946)
  • feat(core): Add getGlobalScope() method (#​9920)
  • feat(core): Add getIsolationScope() method (#​9957)
  • feat(core): Add span.end() to replace span.finish() (#​9954)
  • feat(core): Ensure startSpan & startSpanManual fork scope (#​9955)
  • feat(react): Send component name on spans (#​9949)
  • feat(replay): Send component names in replay breadcrumbs (#​9947)
  • feat(sveltekit): Add options to configure fetch instrumentation script for CSP (#​9969)
  • feat(tracing): Send component name on interaction spans (#​9948)
  • feat(utils): Add function to extract relevant component name (#​9921)
  • fix(core): Rethrow caught promise rejections in startSpan, startSpanManual, trace (#​9958)

v7.90.0

Compare Source

  • feat(replay): Change to use preset quality values (#​9903)
  • fix(replay): Adjust development hydration error messages (#​9922)
  • fix(sveltekit): Add types field to package.json exports (#​9926)

v7.89.0

Compare Source

Important Changes
Deprecations
  • feat(core): Deprecate configureScope (#​9887)
  • feat(core): Deprecate pushScope & popScope (#​9890)

This release deprecates configureScope, pushScope, and popScope, which will be removed in the upcoming v8 major release.

Hapi Integration
  • feat(node): Add Hapi Integration (#​9539)

This release adds an integration for Hapi. It can be used as follows:

const Sentry = require('@​sentry/node');
const Hapi = require('@​hapi/hapi');

const init = async () => {
  const server = Hapi.server({
    // your server configuration ...
  });

  Sentry.init({
    dsn: '__DSN__',
    tracesSampleRate: 1.0,
    integrations: [new Sentry.Integrations.Hapi({ server })],
  });

  server.route({
    // your route configuration ...
  });

  await server.start();
};
SvelteKit 2.0
  • chore(sveltekit): Add SvelteKit 2.0 to peer dependencies (#​9861)

This release adds support for SvelteKit 2.0 in the @sentry/sveltekit package. If you're upgrading from SvelteKit 1.x to 2.x and already use the Sentry SvelteKit SDK, no changes apart from upgrading to this (or a newer) version are necessary.

Other Changes
  • feat(core): Add type & utility for function-based integrations (#​9818)
  • feat(core): Update withScope to return callback return value (#​9866)
  • feat(deno): Support Deno.CronSchedule for cron jobs (#​9880)
  • feat(nextjs): Auto instrument generation functions (#​9781)
  • feat(nextjs): Connect server component transactions if there is no incoming trace (#​9845)
  • feat(node-experimental): Update to new Scope APIs (#​9799)
  • feat(replay): Add canvas.type setting (#​9877)
  • fix(nextjs): Export createReduxEnhancer (#​9854)
  • fix(remix): Do not capture thrown redirect responses. (#​9909)
  • fix(sveltekit): Add conditional exports (#​9872)
  • fix(sveltekit): Avoid capturing 404 errors on client side (#​9902)
  • fix(utils): Do not use Event type in worldwide (#​9864)
  • fix(utils): Support crypto.getRandomValues in old Chromium versions (#​9251)
  • fix(utils): Update eventFromUnknownInput to avoid scope pollution & getCurrentHub (#​9868)
  • ref: Use addBreadcrumb directly & allow to pass hint (#​9867)

Work in this release contributed by @​adam187, and @​jghinestrosa. Thank you for your contributions!

v7.88.0

Compare Source

Important Changes
  • feat(browser): Add browser metrics sdk (#​9794)

The release adds alpha support for Sentry developer metrics in the Browser SDKs (@sentry/browser and related framework SDKs). Via the newly introduced APIs, you can now flush metrics directly to Sentry.

To enable capturing metrics, you first need to add the MetricsAggregator integration.

Sentry.init({
  dsn: '__DSN__',
  integrations: [new Sentry.metrics.MetricsAggregator()],
});

Then you'll be able to add counters, sets, distributions, and gauges under the Sentry.metrics namespace.

// Add 4 to a counter named `hits`
Sentry.metrics.increment('hits', 4);

// Add 2 to gauge named `parallel_requests`, tagged with `happy: "no"`
Sentry.metrics.gauge('parallel_requests', 2, { tags: { happy: 'no' } });

// Add 4.6 to a distribution named `response_time` with unit seconds
Sentry.metrics.distribution('response_time', 4.6, { unit: 'seconds' });

// Add 2 to a set named `valuable.ids`
Sentry.metrics.set('valuable.ids', 2);

In a future release we'll add support for server runtimes (Node, Deno, Bun, Vercel Edge, etc.)

  • feat(deno): Optionally instrument Deno.cron (#​9808)

This releases add support for instrumenting Deno cron's with Sentry cron monitors. This requires v1.38 of Deno run with the --unstable flag and the usage of the DenoCron Sentry integration.

// Import from the Deno registry
import * as Sentry from 'https://deno.land/x/sentry/index.mjs';

Sentry.init({
  dsn: '__DSN__',
  integrations: [new Sentry.DenoCron()],
});
Other Changes
  • feat(replay): Bump rrweb to 2.6.0 (#​9847)
  • fix(nextjs): Guard against injecting multiple times (#​9807)
  • ref(remix): Bump Sentry CLI to ^2.23.0 (#​9773)

v7.87.0

Compare Source

  • feat: Add top level getCurrentScope() method (#​9800)
  • feat(replay): Bump rrweb to 2.5.0 (#​9803)
  • feat(replay): Capture hydration error breadcrumb (#​9759)
  • feat(types): Add profile envelope types (#​9798)
  • fix(astro): Avoid RegExp creation during route interpolation (#​9815)
  • fix(browser): Avoid importing from ./exports (#​9775)
  • fix(nextjs): Catch rejecting flushes (#​9811)
  • fix(nextjs): Fix devserver CORS blockage when assetPrefix is defined (#​9766)
  • fix(node): Capture errors in tRPC middleware (#​9782)

v7.86.0

Compare Source

  • feat(core): Use SDK_VERSION for hub API version (#​9732)
  • feat(nextjs): Emit warning if your app directory doesn't have a global-error.js file (#​9753)
  • feat(node): Add cloudflare pages commit sha (#​9751)
  • feat(remix): Bump @​sentry/cli to 2.22.3 (#​9741)
  • fix(nextjs): Don't accidentally trigger static generation bailout (#​9749)
  • fix(node): Guard process.env.NODE_ENV access in Spotlight integration (#​9748)
  • fix(utils): Fix XHR instrumentation early return (#​9770)
  • ref(remix): Rework Error Handling (#​9725)

v7.85.0

Compare Source

  • feat(core): Add addEventProcessor method (#​9554)
  • feat(crons): Add interface for heartbeat checkin (#​9706)
  • feat(feedback): Include Feedback package in browser SDK (#​9586)
  • fix(astro): Isolate request instrumentation in middleware (#​9709)
  • fix(replay): Capture JSON XHR response bodies (#​9623)
  • ref(feedback): Change form box-shadow to use CSS var (#​9630)

v7.84.0

Compare Source

Important Changes
  • ref(nextjs): Set automaticVercelMonitors to be false by default (#​9697)

From this version onwards the default for the automaticVercelMonitors option in the Next.js SDK is set to false. Previously, if you made use of Vercel Crons the SDK automatically instrumented the relevant routes to create Sentry monitors. Because this feature will soon be generally available, we are now flipping the default to avoid situations where quota is used unexpectedly.

If you want to continue using this feature, make sure to set the automaticVercelMonitors flag to true in your next.config.js Sentry settings.

Other Changes
  • chore(astro): Add 4.0.0 preview versions to astro peer dependency range (#​9696)
  • feat(metrics): Add interfaces for metrics (#​9698)
  • feat(web-vitals): Vendor in INP from web-vitals library (#​9690)
  • fix(astro): Avoid adding the Sentry Vite plugin in dev mode (#​9688)
  • fix(nextjs): Don't match files called middleware in node_modules (#​9686)
  • fix(remix): Don't capture error responses that are not 5xx on Remix v2. (#​9655)
  • fix(tracing): Don't attach resource size if null (#​9669)
  • fix(utils): Regex match port to stop accidental replace (#​9676)
  • fix(utils): Try catch new URL when extracting query params (#​9675)

v7.83.0

Compare Source

  • chore(astro): Allow Astro 4.0 in peer dependencies (#​9683)
  • feat(astro): Add assets option to source maps upload options (#​9668)
  • feat(react): Support exactOptionalPropertyTypes on ErrorBoundary (#​9098)
  • fix: Don't depend on browser types in types (#​9682)
  • fix(astro): Configure sourcemap assets directory for Vercel adapter (#​9665)
  • fix(remix): Check the error data before spreading. (#​9664)

v7.82.0

Compare Source

  • feat(astro): Automatically add Sentry middleware in Astro integration (#​9532)
  • feat(core): Add optional setup hook to integrations (#​9556)
  • feat(core): Add top level getClient() method (#​9638)
  • feat(core): Allow to pass mechanism as event hint (#​9590)
  • feat(core): Allow to use continueTrace without callback (#​9615)
  • feat(feedback): Add onClose callback to showReportDialog (#​9433) (#​9550)
  • feat(nextjs): Add request data to all edge-capable functionalities (#​9636)
  • feat(node): Add Spotlight option to Node SDK (#​9629)
  • feat(utils): Refactor addInstrumentationHandler to dedicated methods (#​9542)
  • fix: Make full url customizable for Spotlight (#​9652)
  • fix(astro): Remove Auth Token existence check (#​9651)
  • fix(nextjs): Fix middleware detection logic (#​9637)
  • fix(remix): Skip capturing aborted requests (#​9659)
  • fix(replay): Add BODY_PARSE_ERROR warning & time out fetch response load (#​9622)
  • fix(tracing): Filter out invalid resource sizes (#​9641)
  • ref: Hoist RequestData integration to @sentry/core (#​9597)
  • ref(feedback): Rename onDialog* to onForm*, remove onActorClick (#​9625)

Work in this release contributed by @​arya-s. Thank you for your contribution!

v7.81.1

Compare Source

  • fix(astro): Remove method from span op (#​9603)
  • fix(deno): Make sure files get published (#​9611)
  • fix(nextjs): Use globalThis instead of global in edge runtime (#​9612)
  • fix(node): Improve error handling and shutdown handling for ANR (#​9548)
  • fix(tracing-internal): Fix case when originalURL contain query params (#​9531)

Work in this release contributed by @​powerfulyang, @​LubomirIgonda1, @​joshkel, and @​alexgleason. Thank you for your contributions!

v7.81.0

Compare Source

Important Changes

- feat(nextjs): Add instrumentation utility for server actions (#​9553)

This release adds a utility function withServerActionInstrumentation to the @sentry/nextjs SDK for instrumenting your Next.js server actions with error and performance monitoring.

You can optionally pass form data and headers to record them, and configure the wrapper to record the Server Action responses:

import * as Sentry from '@​sentry/nextjs';
import { headers } from 'next/headers';

export default function ServerComponent() {
  async function myServerAction(formData: FormData) {
    'use server';
    return await Sentry.withServerActionInstrumentation(
      'myServerAction', // The name you want to associate this Server Action with in Sentry
      {
        formData, // Optionally pass in the form data
        headers: headers(), // Optionally pass in headers
        recordResponse: true, // Optionally record the server action response
      },
      async () => {
        // ... Your Server Action code

        return { name: 'John Doe' };
      },
    );
  }

  return (
    <form action={myServerAction}>
      <input type="text" name="some-input-value" />
      <button type="submit">Run Action</button>
    </form>
  );
}
Other Changes
  • docs(feedback): Example docs on sendFeedback (#​9560)
  • feat(feedback): Add level and remove breadcrumbs from feedback event (#​9533)
  • feat(vercel-edge): Add fetch instrumentation (#​9504)
  • feat(vue): Support Vue 3 lifecycle hooks in mixin options (#​9578)
  • fix(nextjs): Download CLI binary if it can't be found (#​9584)
  • ref: Deprecate extractTraceParentData from @sentry/core & downstream packages (#​9158)
  • ref(replay): Add further logging to network body parsing (#​9566)

Work in this release contributed by @​snoozbuster. Thank you for your contribution!

v7.80.1

Compare Source

  • fix(astro): Adjust Vite plugin config to upload server source maps (#​9541)
  • fix(nextjs): Add tracing extensions in all serverside wrappers (#​9537)
  • fix(nextjs): Fix serverside transaction names on Windows (#​9526)
  • fix(node): Fix tRPC middleware typing (#​9540)
  • fix(replay): Add additional safeguards for capturing network bodies (#​9506)
  • fix(tracing): Update prisma span to be db.prisma (#​9512)

v7.80.0

Compare Source

  • feat(astro): Add distributed tracing via <meta> tags (#​9483)
  • feat(node): Capture internal server errors in trpc middleware (#​9482)
  • feat(remix): Export a type to use for MetaFunction parameters (#​9493)
  • fix(astro): Mark SDK package as Astro-external (#​9509)
  • ref(nextjs): Don't initialize Server SDK during build (#​9503)

v7.79.0

Compare Source

  • feat(tracing): Add span origin to trace context (#​9472)
  • fix(deno): Emit .mjs files (#​9485)
  • fix(nextjs): Flush servercomponent events for edge (#​9487)

v7.78.0

Compare Source

Important Changes
  • Replay Bundle Size improvements

We've dramatically decreased the bundle size of our Replay package, reducing the minified & gzipped bundle size by ~20 KB! This was possible by extensive use of tree shaking and a host of small changes to reduce our footprint:

  • feat(replay): Update rrweb to 2.2.0 (#​9414)
  • ref(replay): Use fflate instead of pako for compression (#​9436)

By using tree shaking it is possible to shave up to 10 additional KB off the bundle.

Other Changes
  • feat(astro): Add Sentry middleware (#​9445)
  • feat(feedback): Add "outline focus" and "foreground hover" vars (#​9462)
  • feat(feedback): Add openDialog and closeDialog onto integration interface (#​9464)
  • feat(feedback): Implement new user feedback embeddable widget (#​9217)
  • feat(nextjs): Add automatic sourcemapping for edge part of the SDK (#​9454)
  • feat(nextjs): Add client routing instrumentation for app router (#​9446)
  • feat(node-experimental): Add hapi tracing support (#​9449)
  • feat(replay): Allow to configure beforeErrorSampling (#​9470)
  • feat(replay): Stop fixing truncated JSONs in SDK (#​9437)
  • fix(nextjs): Fix sourcemaps resolving for local dev when basePath is set (#​9457)
  • fix(nextjs): Only inject basepath in dev mode (#​9465)
  • fix(replay): Ensure we stop for rate limit headers (#​9420)
  • ref(feedback): Add treeshaking for logger statements (#​9475)
  • ref(replay): Use rrweb for slow click detection (#​9408)
  • build(polyfills): Remove output format specific logic (#​9467)

v7.77.0

Compare Source

Security Fixes
  • fix(nextjs): Match only numbers as orgid in tunnelRoute (#​9416) (CVE-2023-46729)
  • fix(nextjs): Strictly validate tunnel target parameters (#​9415) (CVE-2023-46729)
Other Changes
  • feat: Move LinkedErrors integration to @​sentry/core (#​9404)
  • feat(remix): Update sentry-cli version to ^2.21.2 (#​9401)
  • feat(replay): Allow to treeshake & configure compression worker URL (#​9409)
  • fix(angular-ivy): Adjust package entry points to support Angular 17 with SSR config (#​9412)
  • fix(feedback): Fixing feedback import (#​9403)
  • fix(utils): Avoid keeping a reference of last used event (#​9387)

v7.76.0

Compare Source

Important Changes
  • feat(core): Add cron monitor wrapper helper (#​9395)

This release adds Sentry.withMonitor(), a wrapping function that wraps a callback with a cron monitor that will automatically report completions and failures:

import * as Sentry from '@&#8203;sentry/node';

// withMonitor() will send checkin when callback is started/finished
// works with async and sync callbacks.
const result = Sentry.withMonitor(
  'dailyEmail',
  () => {
    // withCheckIn return value is same return value here
    return sendEmail();
  },
  // Optional upsert options
  {
    schedule: {
      type: 'crontab',
      value: '0 * * * *',
    },
    // 🇨🇦🫡
    timezone: 'Canada/Eastern',
  },
);
Other Changes
  • chore(angular-ivy): Allow Angular 17 in peer dependencies (#​9386)
  • feat(nextjs): Instrument SSR page components (#​9346)
  • feat(nextjs): Trace errors in page component SSR (#​9388)
  • fix(nextjs): Instrument route handlers with jsx and tsx file extensions (#​9362)
  • fix(nextjs): Trace with performance disabled (#​9389)
  • fix(replay): Ensure replay_id is not added to DSC if session expired (#​9359)
  • fix(replay): Remove unused parts of pako from build (#​9369)
  • fix(serverless): Don't mark all errors as unhandled (#​9368)
  • fix(tracing-internal): Fix case when middleware contain array of routes with special chars as @​ (#​9375)
  • meta(nextjs): Bump peer deps for Next.js 14 (#​9390)

Work in this release contributed by @​LubomirIgonda1. Thank you for your contribution!

v7.75.1

Compare Source

  • feat(browser): Allow collecting of pageload profiles (#​9317)
  • fix(browser): Correct timestamp on pageload profiles (#​9350)
  • fix(nextjs): Use webpack plugin release value to inject release (#​9348)

v7.75.0

Compare Source

Important Changes
  • feat(opentelemetry): Add new @sentry/opentelemetry package (#​9238)

This release publishes a new package, @sentry/opentelemetry. This is a runtime agnostic replacement for @sentry/opentelemetry-node and exports a couple of useful utilities which can be used to use Sentry together with OpenTelemetry.

You can read more about @​sentry/opentelemetry in the Readme.

  • feat(replay): Allow to treeshake rrweb features (#​9274)

Starting with this release, you can configure the following build-time flags in order to reduce the SDK bundle size:

  • __RRWEB_EXCLUDE_CANVAS__
  • __RRWEB_EXCLUDE_IFRAME__
  • __RRWEB_EXCLUDE_SHADOW_DOM__

You can read more about tree shaking in our docs.

Other Changes
  • build(deno): Prepare Deno SDK for release on npm (#​9281)
  • feat: Remove tslib (#​9299)
  • feat(node): Add abnormal session support for ANR (#​9268)
  • feat(node): Remove lru_map dependency (#​9300)
  • feat(node): Vendor cookie module (#​9308)
  • feat(replay): Share performance instrumentation with tracing (#​9296)
  • feat(types): Add missing Profiling types (macho debug image, profile measurements, stack frame properties) (#​9277)
  • feat(types): Add statsd envelope types (#​9304)
  • fix(astro): Add integration default export to types entry point (#​9337)
  • fix(astro): Convert SDK init file import paths to POSIX paths (#​9336)
  • fix(astro): Make Replay and BrowserTracing integrations tree-shakeable (#​9287)
  • fix(integrations): Fix transaction integration (#​9334)
  • fix(nextjs): Restore autoInstrumentMiddleware functionality (#​9323)
  • fix(nextjs): Guard for case where getInitialProps may return undefined (#​9342)
  • fix(node-experimental): Make node-fetch support optional (#​9321)
  • fix(node): Check buffer length when attempting to parse ANR frame (#​9314)
  • fix(replay): Fix xhr start timestamps (#​9341)
  • fix(tracing-internal): Remove query params from urls with a trailing slash (#​9328)
  • fix(types): Remove typo with CheckInEnvelope (#​9303)

v7.74.1

Compare Source

  • chore(astro): Add astro-integration keyword (#​9265)
  • fix(core): Narrow filters for health check transactions (#​9257)
  • fix(nextjs): Fix HMR by inserting new entrypoints at the end (#​9267)
  • fix(nextjs): Fix resolution of request async storage module (#​9259)
  • fix(node-experimental): Guard against missing fetch (#​9275)
  • fix(remix): Update defer injection logic. (#​9242)
  • fix(tracing-internal): Parameterize express middleware parameters (#​8668)
  • fix(utils): Move Node specific ANR impl. out of utils (#​9258)

Work in this release contributed by @​LubomirIgonda1. Thank you for your contribution!

v7.74.0

Compare Source

Important Changes
  • feat(astro): Add sentryAstro integration (#​9218)

This Release introduces the first alpha version of our new SDK for Astro. At this time, the SDK is considered experimental and things might break and change in future versions.

The core of the SDK is an Astro integration which you easily add to your Astro config:

// astro.config.js
import { defineConfig } from 'astro/config';
import sentry from '@&#8203;sentry/astro';

export default defineConfig({
  integrations: [
    sentry({
      dsn: '__DSN__',
      sourceMapsUploadOptions: {
        project: 'astro',
        authToken: process.env.SENTRY_AUTH_TOKEN,
      },
    }),
  ],
});

Check out the README for usage instructions and what to expect from this alpha release.

Other Changes
  • feat(core): Add addIntegration utility (#​9186)
  • feat(core): Add continueTrace method (#​9164)
  • feat(node-experimental): Add NodeFetch integration (#​9226)
  • feat(node-experimental): Use native OTEL Spans (#​9161, #​9214)
  • feat(node-experimental): Sample in OTEL Sampler (#​9203)
  • feat(serverlesss): Allow disabling transaction traces (#​9154)
  • feat(tracing): Allow direct pg module to enable esbuild support (#​9227)
  • feat(utils): Move common node ANR code to utils (#​9191)
  • feat(vue): Expose VueIntegration to initialize vue app later (#​9180)
  • fix: Don't set referrerPolicy on serverside fetch transports (#​9200)
  • fix: Ensure we never mutate options passed to init (#​9162)
  • fix(ember): Avoid pulling in utils at build time (#​9221)
  • fix(ember): Drop undefined config values (#​9175)
  • fix(node): Ensure mysql integration works without callback (#​9222)
  • fix(node): Only require inspector when needed (#​9149)
  • fix(node): Remove ANR debug option and instead add logger.isEnabled() (#​9230)
  • fix(node): Strip .mjs and .cjs extensions from module name (#​9231)
  • fix(replay): bump rrweb to 2.0.1 (#​9240)
  • fix(replay): Fix potential broken CSS in styled-components (#​9234)
  • fix(sveltekit): Flush in server wrappers before exiting (#​9153)
  • fix(types): Update signature of processEvent integration hook (#​9151)
  • fix(utils): Dereference DOM events after they have servered their purpose (#​9224)
  • ref(integrations): Refactor pluggable integrations to use processEvent (#​9021)
  • ref(serverless): Properly deprecate rethrowAfterCapture option (#​9159)
  • ref(utils): Deprecate walk method (#​9157)

Work in this release contributed by @​aldenquimby. Thank you for your contributions!

v7.73.0

Compare Source

Important Changes
  • feat(replay): Upgrade to rrweb2

This is fully backwards compatible with prior versions of the Replay SDK. The only breaking change that we will making is to not be masking aria-label by default. The reason for this change is to align with our core SDK which also does not mask aria-label. This change also enables better support of searching by clicks.

Another change that needs to be highlighted is the 13% bundle size increase. This bundle size increase is necessary to bring improved recording performance and improved replay fidelity, especially in regards to web components and iframes. We will be investigating the reduction of the bundle size in this MR.

Here are benchmarks comparing the version 1 of rrweb to version 2

metric v1 v2
lcp 1486.06 ms 1529.11 ms
cls 0.40 ms 0.40 ms
fid 1.53 ms 1.50 ms
tbt 3207.22 ms 3036.80 ms
memoryAvg 131.83 MB 124.84 MB
memoryMax 324.8 MB 339.03 MB
netTx 282.67 KB 272.51 KB
netRx 8.02 MB 8.07 MB
Other Changes
  • feat: Always assemble Envelopes (#​9101)
  • feat(node): Rate limit local variables for caught exceptions and enable captureAllExceptions by default (#​9102)
  • fix(core): Ensure tunnel is considered for isSentryUrl checks (#​9130)
  • fix(nextjs): Fix RequestAsyncStorage fallback path (#​9126)
  • fix(node-otel): Suppress tracing for generated sentry spans (#​9142)
  • fix(node): fill in span data from http request options object (#​9112)
  • fix(node): Fixes and improvements to ANR detection (#​9128)
  • fix(sveltekit): Avoid data invalidation in wrapped client-side load functions (#​9071)
  • ref(core): Refactor InboundFilters integration to use processEvent (#​9020)
  • ref(wasm): Refactor Wasm integration to use processEvent (#​9019)

Work in this release contributed by @​vlad-zhukov. Thank you for your contribution!

v7.72.0

Compare Source

Important Changes
  • feat(node): App Not Responding with stack traces (#​9079)

This release introduces support for Application Not Responding (ANR) errors for Node.js applications. These errors are triggered when the Node.js main thread event loop of an application is blocked for more than five seconds. The Node SDK reports ANR errors as Sentry events and can optionally attach a stacktrace of the blocking code to the ANR event.

To enable ANR detection, import and use the enableANRDetection function from the @sentry/node package before you run the rest of your application code. Any event loop blocking before calling enableANRDetection will not be detected by the SDK.

Example (ESM):

import * as Sentry from '@&#8203;sentry/node';

Sentry.init({
  dsn: '___PUBLIC_DSN___',
  tracesSampleRate: 1.0,
});

await Sentry.enableANRDetection({ captureStackTrace: true });
// Function that runs your app
runApp();

Example (CJS):

const Sentry = require('@&#8203;sentry/node');

Sentry.init({
  dsn: '___PUBLIC_DSN___',
  tracesSampleRate: 1.0,
});

Sentry.enableANRDetection({ captureStackTrace: true }).then(() => {
  // Function that runs your app
  runApp();
});
Other Changes
  • fix(nextjs): Filter RequestAsyncStorage locations by locations that webpack will resolve (#​9114)
  • fix(replay): Ensure replay_id is not captured when session is expired (#​9109)

v7.71.0

Compare Source

  • feat(bun): Instrument Bun.serve (#​9080)
  • fix(core): Ensure global event processors are always applied to event (#​9064)
  • fix(core): Run client eventProcessors before global ones (#​9032)
  • fix(nextjs): Use webpack module paths to attempt to resolve internal request async storage module (#​9100)
  • fix(react): Add actual error name to boundary error name (#​9065)
  • fix(react): Compare location against basename-prefixed route. (#​9076)
  • ref(browser): Refactor browser integrations to use processEvent (#​9022)

Work in this release contributed by @​jorrit. Thank you for your contribution!

v7.70.0

Compare Source

Important Changes

This release contains the beta version of @sentry/bun, our SDK for the Bun JavaScript runtime! For details on how to use it, please see the README. Any feedback/bug reports are greatly appreciated, please reach out on GitHub.

Note that as of now the Bun runtime does not support global error handlers. This is being actively worked on, see the tracking issue in Bun's GitHub repo.

  • feat(remix): Add Remix 2.x release support. (#​8940)

The Sentry Remix SDK now officially supports Remix v2! See our Remix docs for more details.

Other Changes
  • chore(node): Upgrade cookie to ^0.5.0 (#​9013)
  • feat(core): Introduce processEvent hook on Integration (#​9017)
  • feat(node): Improve non-error messages (#​9026)
  • feat(vercel-edge): Add Vercel Edge Runtime package (#​9041)
  • fix(remix): Use React.ComponentType instead of React.FC as withSentry's generic type. (#​9043)
  • fix(replay): Ensure replay events go through preprocessEvent hook (#​9034)
  • fix(replay): Fix typo in Replay types (#​9028)
  • fix(sveltekit): Adjust handleErrorWithSentry type (#​9054)
  • fix(utils): Try-catch monkeypatching to handle frozen objects/functions (#​9031)

Work in this release contributed by @​Dima-Dim, @​krist7599555 and @​lifeiscontent. Thank you for your contributions!

Special thanks for @​isaacharrisholt for helping us implement a Vercel Edge Runtime SDK which we use under the hood for our Next.js SDK.

v7.69.0

Compare Source

Important Changes
  • New Performance APIs
    • feat: Update span performance API names (#​8971)
    • feat(core): Introduce startSpanManual (#​8913)

This release introduces a new set of top level APIs for the Performance Monitoring SDKs. These aim to simplify creating spans and reduce the boilerplate needed for performance instrumentation. The three new methods introduced are Sentry.startSpan, Sentry.startInactiveSpan, and Sentry.startSpanManual. These methods are available in the browser and node SDKs.

Sentry.startSpan wraps a callback in a span. The span is automatically finished when the callback returns. This is the recommended way to create spans.

// Start a span that tracks the duration of expensiveFunction
const result = Sentry.startSpan({ name: 'important function' }, () => {
  return expensiveFunction();
});

// You can also mutate the span wrapping the callback to set data or status
Sentry.startSpan({ name: 'important function' }, span => {
  // span is undefined if performance monitoring is turned off or if
  // the span was not sampled. This is done to reduce overhead.
  span?.setData('version', '1.0.0');
  return expensiveFunction();
});

If you don't want the span to finish when the callback returns, use Sentry.startSpanManual to control when the span is finished. This is useful for event emitters or similar.

// Start a span that tracks the duration of middleware
function middleware(_req, res, next) {
  return Sentry.startSpanManual({ name: 'middleware' }, (span, finish) => {
    res.once('finish', () => {
      setHttpStatus(span, res.status);
      finish();
    });
    return next();
  });
}

Sentry.startSpan and Sentry.startSpanManual create a span and make it active for the duration of the callback. Any spans created while this active span is running will be added as a child span to it. If you want to create a span without making it active, use Sentry.startInactiveSpan. This is useful for creating parallel spans that are not related to each other.

const span1 = Sentry.startInactiveSpan({ name: 'span1' });

someWork();

const span2 = Sentry.startInactiveSpan({ name: 'span2' });

moreWork();

const span3 = Sentry.startInactiveSpan({ name: 'span3' });

evenMoreWork();

span1?.finish();
span2?.finish();
span3?.finish();
Other Changes
  • feat(core): Export BeforeFinishCallback type (#​8999)
  • build(eslint): Enforce that ts-expect-error is used (#​8987)
  • feat(integration): Ensure LinkedErrors integration runs before all event processors (#​8956)
  • feat(node-experimental): Keep breadcrumbs on transaction (#​8967)
  • feat(redux): Add 'attachReduxState' option (#​8953)
  • feat(remix): Accept org, project and url as args to upload script (#​8985)
  • fix(utils): Prevent iterating over VueViewModel (#​8981)
  • fix(utils): uuidv4 fix for cloudflare (#​8968)
  • fix(core): Always use event message and exception values for ignoreErrors (#​8986)
  • fix(nextjs): Add new potential location for Next.js request AsyncLocalStorage (#​9006)
  • fix(node-experimental): Ensure we only create HTTP spans when outgoing (#​8966)
  • fix(node-experimental): Ignore OPTIONS & HEAD requests (#​9001)
  • fix(node-experimental): Ignore outgoing Sentry requests (#​8994)
  • fix(node-experimental): Require parent span for pg spans (#​8993)
  • fix(node-experimental): Use Sentry logger as Otel logger (#​8960)
  • fix(node-otel): Refactor OTEL span reference cleanup (#​9000)
  • fix(react): Switch to props in useRoutes (#​8998)
  • fix(remix): Add glob to Remix SDK dependencies. (#​8963)
  • fix(replay): Ensure handleRecordingEmit aborts when event is not added (#​8938)
  • fix(replay): Fully stop & restart session when it expires (#​8834)

Work in this release contributed by @​Duncanxyz and @​malay44. Thank you for your contributions!

v7.68.0

Compare Source

  • feat(browser): Add BroadcastChannel and SharedWorker to TryCatch EventTargets (#​8943)
  • feat(core): Add name to Span (#​8949)
  • feat(core): Add ServerRuntimeClient (#​8930)
  • fix(node-experimental): Ensure span.finish() works as expected (#​8947)
  • fix(remix): Add new sourcemap-upload script files to prepack assets. (#​8948)
  • fix(publish): Publish downleveled TS3.8 types and fix types path (#​8954)

v7.67.0

Compare Source

Important Changes
  • feat: Mark errors caught by the SDK as unhandled
    • feat(browser): Mark errors caught from TryCatch integration as unhandled (#​8890)
    • feat(integrations): Mark errors caught from HttpClient and CaptureConsole integrations as unhandled (#​8891)
    • feat(nextjs): Mark errors caught from NextJS wrappers as unhandled (#​8893)
    • feat(react): Mark errors captured from ErrorBoundary as unhandled (#​8914)
    • feat(remix): Add debugid injection and map deletion to sourcemaps script (#​8814)
    • feat(remix): Mark errors caught from Remix instrumentation as unhandled (#​8894)
    • feat(serverless): Mark errors caught in Serverless handlers as unhandled (#​8907)
    • feat(vue): Mark errors caught by Vue wrappers as unhandled (#​8905)

This release fixes inconsistent behaviour of when our SDKs classify captured errors as unhandled. Previously, some of our instrumentations correctly set unhandled, while others set handled. Going forward, all errors caught automatically from our SDKs will be marked as unhandled. If you manually capture errors (e.g. by calling Sentry.captureException), your errors will continue to be reported as handled.

This change might lead to a decrease in reported crash-free sessions and consequently in your release health score. If you have concerns about this, feel free to open an issue.

Other Changes
  • feat(node-experimental): Implement new performance APIs (#​8911)
  • feat(node-experimental): Sync OTEL context with Sentry AsyncContext (#​8797)
  • feat(replay): Allow to configure maxReplayDuration (#​8769)
  • fix(browser): Add replay and profiling options to BrowserClientOptions (#​8921)
  • fix(browser): Check for existence of instrumentation targets (#​8939)
  • fix(nextjs): Don't re-export default in route handlers (#​8924)
  • fix(node): Improve mysql integration (#​8923)
  • fix(remix): Guard against missing default export for server instrument (#​8909)
  • ref(browser): Deprecate top-level wrap function (#​8927)
  • ref(node-otel): Avoid exporting internals & refactor attribute adding (#​8920)

Work in this release contributed by @​SorsOps. Thank you for your contribution!

v7.66.0

Compare Source

  • fix: Defer tracing decision to downstream SDKs when using SDK without performance (#​8839)
  • fix(nextjs): Fix package.json exports (#​8895)
  • fix(sveltekit): Ensure target file exists before applying auto instrumentation (#​8881)
  • ref: Use consistent console instrumentation (#​8879)
  • ref(browser): Refactor sentry breadcrumb to use hook (#​8892)
  • ref(tracing): Add origin to spans (#​8765)

v7.65.0

Compare Source

  • build: Remove build-specific polyfills (#​8809)
  • build(deps): bump protobufjs from 6.11.3 to 6.11.4 (#​8822)
  • deps(sveltekit): Bump @sentry/vite-plugin (#​8877)
  • feat(core): Introduce Sentry.startActiveSpan and Sentry.startSpan (#​8803)
  • fix: Memoize AsyncLocalStorage instance (#​8831)
  • fix(nextjs): Check for validity of API route handler signature (#​8811)
  • fix(nextjs): Fix requestAsyncStorageShim path resolution on windows (#​8875)
  • fix(node): Log entire error object in OnUncaughtException (#​8876)
  • fix(node): More relevant warning message when tracing extensions are missing (#​8820)
  • fix(replay): Streamline session creation/refresh (#​8813)
  • fix(sveltekit): Avoid invalidating data on route changes in wrapServerLoadWithSentry (#​8801)
  • fix(tracing): Better guarding for performance observer (#​8872)
  • ref(sveltekit): Remove custom client fetch instrumentation and use default instrumentation (#​8802)
  • ref(tracing-internal): Deprecate tracePropagationTargets in BrowserTracing (#​8874)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

Merge request reports

Loading