You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A Nitro plugin for @sentry/nuxt which initializes Sentry when deployed to Cloudflare (cloudflare-pages preset).
Remove the previous server config file: sentry.server.config.ts
Add a plugin in server/plugins (e.g. server/plugins/sentry-cloudflare-setup.ts)
Add this code in your plugin file
// server/plugins/sentry-cloudflare-setup.ts (filename does not matter)import{sentryCloudflareNitroPlugin}from'@​sentry/nuxt/module/plugins';exportdefaultdefineNitroPlugin(sentryCloudflareNitroPlugin({dsn: 'https://dsn',tracesSampleRate: 1.0,}),);
or with access to nitroApp:
// server/plugins/sentry-cloudflare-setup.ts (filename does not matter)import{sentryCloudflareNitroPlugin}from'@​sentry/nuxt/module/plugins';exportdefaultdefineNitroPlugin(sentryCloudflareNitroPlugin((nitroApp: NitroApp)=>{// You can access nitroApp here if neededreturn({dsn: 'https://dsn',tracesSampleRate: 1.0,})}))
Other Changes
feat(browser): Record standalone LCP spans (#16591)
fix(nuxt): Only add OTel alias in dev mode (#16756)
feat: Add opt-in vercelAiIntegration to cloudflare & vercel-edge (#16732)
The vercelAiIntegration is now available as opt-in for the Cloudflare and the Next.js SDK for Vercel Edge.
To use it, add the integration in Sentry.init
The Node.js SDK now includes instrumentation for Postgres.js.
feat(node): Use diagnostics channel for Fastify v5 error handling (#16715)
If you're on Fastify v5, you no longer need to call setupFastifyErrorHandler. It is done automatically by the node SDK. Older versions still rely on calling setupFastifyErrorHandler.
Other Changes
feat(cloudflare): Allow interop with OpenTelemetry emitted spans (#16714)
feat(browser): Add CLS sources to span attributes (#16710)
Enhances CLS (Cumulative Layout Shift) spans by adding attributes detailing the elements that caused layout shifts.
feat(cloudflare): Add instrumentWorkflowWithSentry to instrument workflows (#16672)
We've added support for Cloudflare Workflows, enabling comprehensive tracing for your workflow runs. This integration uses the workflow's instanceId as the Sentry trace_id and for sampling, linking all steps together. You'll now be able to see full traces, including retries with exponential backoff.
feat(pino-transport): Add functionality to send logs to sentry (#16667)
Adds the ability to send logs to Sentry via a pino transport.
Other Changes
feat(nextjs): Expose top level buildTime errorHandler option (#16718)
feat(node): update pipeline spans to use agent naming (#16712)
feat(nextjs): Add option for auto-generated random tunnel route (#16626)
Adds an option to automatically generate a random tunnel route for the Next.js SDK. This helps prevent ad blockers and other tools from blocking Sentry requests by using a randomized path instead of the predictable /monitoring endpoint.
feat(core): Allow to pass scope & client to getTraceData (#16633)
Adds the ability to pass custom scope and client parameters to the getTraceData function, providing more flexibility when generating trace data for distributed tracing.
Other Changes
feat(core): Add support for x-forwarded-host and x-forwarded-proto headers (#16687)
feat(browser): Update web-vitals to 5.0.2 (#16492)
This release upgrades the web-vitals library to version 5.0.2. This upgrade could slightly change the collected web vital values and potentially also influence alerts and performance scores in the Sentry UI.
feat(nestjs): Stop creating spans for TracingInterceptor (#16501)
With this change we stop creating spans for TracingInterceptor as this interceptor only serves as an internal helper and adds noise for the user.
feat(node): Update vercel ai spans as per new conventions (#16497)
This feature ships updates to the span names and ops to better match OpenTelemetry. This should make them more easily accessible to the new agents module view we are building.
Other Changes
fix(sveltekit): Export vercelAIIntegration from @sentry/node (#16496)
Work in this release was contributed by @agrattan0820. Thank you for your contribution!
feat(browser): Add option to ignore mark and measure spans (#16443)
This release adds an option to browserTracingIntegration that lets you ignore mark and measure spans created from the performance.mark(...) and performance.measure(...) browser APIs:
Revert "feat(browser): Track measure detail as span attributes" (#16348)
This is a revert of a feature introduced in 9.20.0 with #16240. This feature was causing crashes in firefox, so we are reverting it. We will re-enable this functionality in the future after fixing the crash.
feat: Create a Vite plugin that injects sentryConfig into the global config (#16197)
Add a new plugin makeConfigInjectorPlugin within our existing vite plugin that updates the global vite config with sentry options
feat(browser): Add option to sample linked traces consistently (#16037)
This PR implements consistent sampling across traces as outlined in (#15754)
feat(cloudflare): Add support for durable objects (#16180)
This PR introduces a new instrumentDurableObjectWithSentry method to the SDK, which instruments durable objects. We capture both traces and errors automatically.
feat(node): Add Prisma integration by default (#16073)
Prisma integration is enabled by default, it should work for both ESM and CJS.
Adds client-side instrumentation for react router's HydratedRouter. To enable it, simply replace browserTracingIntegration() with reactRouterTracingIntegration() in your client-side init call.
When running your application in ESM mode, there have been scenarios that resulted in the http/https emitting duplicate spans for incoming requests. This was apparently caused by us double-wrapping the modules for incoming request isolation.
In order to solve this problem, the modules are no longer monkey patched by us for request isolation. Instead, we register diagnosticschannel hooks to handle request isolation now.
While this is generally not expected to break anything, there is one tiny change that _may affect you if you have been relying on very specific functionality:
The ignoreOutgoingRequests option of httpIntegration receives the RequestOptions as second argument. This type is not changed, however due to how the wrapping now works, we no longer pass through the full RequestOptions, but re-construct this partially based on the generated request. For the vast majority of cases, this should be fine, but for the sake of completeness, these are the only fields that may be available there going forward - other fields that may have existed before may no longer be set:
ignoreOutgoingRequests(url: string,{method: string;
protocol: string;
host: string;
hostname: string;// same as host
path: string;
headers: OutgoingHttpHeaders;})
feat: Export wrapMcpServerWithSentry from server packages (#16127)
Exports the wrapMcpServerWithSentry which is our MCP server instrumentation from all the server packages.
feat(core): Associate resource/tool/prompt invocations with request span instead of response span (#16126)
Adds a best effort mechanism to associate handler spans for resource, tool and prompt with the incoming message requests instead of the outgoing SSE response.
This PR adds Supabase integration to @sentry/core, allowing automatic instrumentation of Supabase client operations (database queries and authentication) for performance monitoring and error tracking.
feat(nestjs): Gracefully handle RPC scenarios in SentryGlobalFilter (#16066)
This PR adds better RPC exception handling to @sentry/nestjs, preventing application crashes while still capturing errors and warning users when a dedicated filter is needed. The implementation gracefully handles the 'rpc' context type in SentryGlobalFilter to improve reliability in hybrid applications.
This PR adds trace propagation to @sentry/react-router by providing utilities to inject trace meta tags into HTML headers and offering a pre-built Sentry-instrumented request handler, improving distributed tracing capabilities across page loads.
feat(node): Add support for winston logger (#15983)
Sentry is adding support for structured logging. In this release we've added support for sending logs to Sentry via the winston logger to the Sentry Node SDK (and SDKs that use the Node SDK under the hood like @sentry/nestjs). The Logging APIs in the Sentry SDK are still experimental and subject to change.
feat(core): Add wrapMcpServerWithSentry to instrument MCP servers from @modelcontextprotocol/sdk (#16032)
The Sentry SDK now supports instrumenting MCP servers from the @modelcontextprotocol/sdk package. Compatible with versions ^1.9.0 of the @modelcontextprotocol/sdk package.
import{McpServer}from'@​modelcontextprotocol/sdk/server/mcp.js';// Create an MCP serverconstserver=newMcpServer({name: 'Demo',version: '1.0.0',});// Use the instrumented server in your applicationconstinstrumentedServer=Sentry.wrapMcpServerWithSentry(server);
feat(core): Move console integration into core and add to cloudflare/vercel-edge (#16024)
Console instrumentation has been added to @sentry/cloudflare and @sentry/nextjs Edge Runtime and is enabled by default. Now calls to the console object will be captured as breadcrumbs for those SDKs.
Bun 1.2.6 and above have a new Bun.serve API, which the Bun SDK now supports. The SDK instruments the new routes object that can be used to define routes for the server.
Thanks to @Jarred-Sumner for helping us get this supported!
Other Changes
feat(browser): Warn on duplicate browserTracingIntegration (#16042)
feat(core): Allow delayed sending with offline transport (#15937)
All JavaScript SDKs other than @sentry/cloudflare and @sentry/deno now support sending logs via dedicated methods as part of Sentry's upcoming logging product.
Logging is gated by an experimental option, _experiments.enableLogs.
Sentry.init({dsn: 'PUBLIC_DSN',// `enableLogs` must be set to true to use the logging features_experiments: {enableLogs: true},});const{ trace, debug, info, warn, error, fatal, fmt }=Sentry.logger;trace('Starting database connection',{database: 'users'});debug('Cache miss for user',{userId: 123});error('Failed to process payment',{orderId: 'order_123',amount: 99.99});fatal('Database connection pool exhausted',{database: 'users',activeConnections: 100});// Structured logging via the `fmt` helper function. When you use `fmt`, the string template and parameters are sent separately so they can be queried independently in Sentry.info(fmt(`Updated profile for user ${userId}`));warn(fmt(`Rate limit approaching for endpoint ${endpoint}. Requests: ${requests}, Limit: ${limit}`));
With server-side SDKs like @sentry/node, @sentry/bun or server-side of @sentry/nextjs or @sentry/sveltekit, you can do structured logging without needing the fmt helper function.
const{ info, warn }=Sentry.logger;info('User %s logged in successfully',[123]);warn('Failed to load user %s data',[123],{errorCode: 404});
To filter logs, or update them before they are sent to Sentry, you can use the _experiments.beforeSendLog option.
feat(browser): Add diagnoseSdkConnectivity() function to programmatically detect possible connectivity issues (#15821)
The diagnoseSdkConnectivity() function can be used to programmatically detect possible connectivity issues with the Sentry SDK.
The result will be an object with the following properties:
"no-client-active": There was no active client when the function was called. This possibly means that the SDK was not initialized yet.
"sentry-unreachable": The Sentry SaaS servers were not reachable. This likely means that there is an ad blocker active on the page or that there are other connection issues.
undefined: The SDK is working as expected.
SDK Tracing Performance Improvements for Node SDKs
feat(node): Only add span listeners for instrumentation when used (#15802)
ref: Avoid dropUndefinedKeys for spanToJSON calls (#15792)
ref: Avoid using SentryError for PromiseBuffer control flow (#15822)
ref: Stop using dropUndefinedKeys in SpanExporter (#15794)
ref(core): Avoid using SentryError for event processing control flow (#15823)
ref(node): Avoid dropUndefinedKeys in Node SDK init (#15797)
ref(opentelemetry): Avoid sampling work for non-root spans (#15820)
We've been hard at work making performance improvements to the Sentry Node SDKs (@sentry/node, @sentry/aws-serverless, @sentry/nestjs, etc.). We've seen that upgrading from 9.7.0 to 9.10.0 leads to 30-40% improvement in request latency for HTTP web-server applications that use tracing with high sample rates. Non web-server applications and non-tracing applications will see smaller improvements.
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: front/package-lock.json
npm warn Unknown env config "store". This will stop working in the next major version of npm.
npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: @welldone-software/why-did-you-render@8.0.3
npm error Found: react@19.1.0
npm error node_modules/react
npm error react@"~19.1.0" from the root project
npm error peer overridden react@"~19.1.0" (was ">=16.9.0") from @geist-ui/core@2.3.8
npm error node_modules/@geist-ui/core
npm error @geist-ui/core@"^2.3.8" from the root project
npm error 16 more (@monaco-editor/react, @rjsf/core, @rjsf/utils, ...)
npm error
npm error Could not resolve dependency:
npm error peer react@"^18" from @welldone-software/why-did-you-render@8.0.3
npm error node_modules/@welldone-software/why-did-you-render
npm error dev @welldone-software/why-did-you-render@"~8.0" from the root project
npm error
npm error Conflicting peer dependency: react@18.3.1
npm error node_modules/react
npm error peer react@"^18" from @welldone-software/why-did-you-render@8.0.3
npm error node_modules/@welldone-software/why-did-you-render
npm error dev @welldone-software/why-did-you-render@"~8.0" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /tmp/renovate/cache/others/npm/_logs/2025-06-02T02_44_56_782Z-eresolve-report.txt
npm error A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2025-06-02T02_44_56_782Z-debug-0.log
Il faut aussi bump @welldone-software/why-did-you-render en version 10.0 afin d'être compatible avec React 19. @thom4parisot J'ai l'impression qu'on a beaucoup moins de soucis de performance/rerender maintenant que les composants sont mieux découpés et avec l'utilisation des hooks + SWR. Peut être qu'on pourrait se passer de @welldone-software/why-did-you-render?
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^8.38.0
->^9.0.0
~18.3
->~19.1.0
~18.3
->~19.1.0
Release Notes
getsentry/sentry-javascript (@sentry/react)
v9.35.0
Compare Source
Context
andContexts
types (#16763)eventLoopBlockIntegration
(#16709)parentSpan
is considered (#16776)require
for fastify integration (#16789)@sentry/cloudflare
as optional peerDependency (#16782)@Cron
decorated tasks (#16792)Work in this release was contributed by @0xbad0c0d3 and @alSergey. Thank you for your contributions!
v9.34.0
Compare Source
Important Changes
feat(nuxt): Add Cloudflare Nitro plugin (#15597)
A Nitro plugin for
@sentry/nuxt
which initializes Sentry when deployed to Cloudflare (cloudflare-pages
preset).Remove the previous server config file:
sentry.server.config.ts
Add a plugin in
server/plugins
(e.g.server/plugins/sentry-cloudflare-setup.ts
)Add this code in your plugin file
or with access to
nitroApp
:Other Changes
v9.33.0
Compare Source
Important Changes
vercelAiIntegration
to cloudflare & vercel-edge (#16732)The
vercelAiIntegration
is now available as opt-in for the Cloudflare and the Next.js SDK for Vercel Edge.To use it, add the integration in
Sentry.init
And enable telemetry for Vercel AI calls
The Node.js SDK now includes instrumentation for Postgres.js.
If you're on Fastify v5, you no longer need to call
setupFastifyErrorHandler
. It is done automatically by the node SDK. Older versions still rely on callingsetupFastifyErrorHandler
.Other Changes
waitUntil
(#16681)ai
from default server external packages (#16736)Work in this release was contributed by @0xbad0c0d3. Thank you for your contribution!
v9.32.0
Compare Source
Important Changes
Enhances CLS (Cumulative Layout Shift) spans by adding attributes detailing the elements that caused layout shifts.
instrumentWorkflowWithSentry
to instrument workflows (#16672)We've added support for Cloudflare Workflows, enabling comprehensive tracing for your workflow runs. This integration uses the workflow's instanceId as the Sentry trace_id and for sampling, linking all steps together. You'll now be able to see full traces, including retries with exponential backoff.
Adds the ability to send logs to Sentry via a pino transport.
Other Changes
errorHandler
option (#16718)CloudEventsContext
compatible withCloudEvent
(#16705)false
(#16695)@opentelemetry/resources
(#16727)Work in this release was contributed by @flaeppe. Thank you for your contribution!
v9.31.0
Compare Source
Important Changes
Adds an option to automatically generate a random tunnel route for the Next.js SDK. This helps prevent ad blockers and other tools from blocking Sentry requests by using a randomized path instead of the predictable
/monitoring
endpoint.scope
&client
togetTraceData
(#16633)Adds the ability to pass custom
scope
andclient
parameters to thegetTraceData
function, providing more flexibility when generating trace data for distributed tracing.Other Changes
x-forwarded-host
andx-forwarded-proto
headers (#16687)@sentry/opentelemetry
dependency (#16677)@sentry/pino-transport
(#16652)safeJoin
usage in console logging integration (#16658)CloudEvent
type compatible (#16661)instrumentation-client.js
file (#16637)v9.30.0
Compare Source
vercelAiIntegration
whenai
module is detected (#16565)modulesIntegration
works in more environments (#16566)sendDefaultPii
(#16527)v9.29.0
Compare Source
Important Changes
web-vitals
to 5.0.2 (#16492)This release upgrades the
web-vitals
library to version 5.0.2. This upgrade could slightly change the collected web vital values and potentially also influence alerts and performance scores in the Sentry UI.Other Changes
onError
usage (#16547)vercelAiIntegration
(#16551)ignoreLayersType
option to koa integration (#16553)suppressTracing
does not leak when async (#16545)v9.28.1
Compare Source
Work in this release was contributed by @eltigerchino. Thank you for your contribution!
v9.28.0
Compare Source
Important Changes
TracingInterceptor
(#16501)With this change we stop creating spans for
TracingInterceptor
as this interceptor only serves as an internal helper and adds noise for the user.This feature ships updates to the span names and ops to better match OpenTelemetry. This should make them more easily accessible to the new agents module view we are building.
Other Changes
vercelAIIntegration
from@sentry/node
(#16496)Work in this release was contributed by @agrattan0820. Thank you for your contribution!
v9.27.0
Compare Source
ReactRouterServer
integration (#16470)v9.26.0
Compare Source
@sentry/react
(#16465)v9.25.1
Compare Source
v9.25.0
Compare Source
Important Changes
mark
andmeasure
spans (#16443)This release adds an option to
browserTracingIntegration
that lets you ignoremark
andmeasure
spans created from theperformance.mark(...)
andperformance.measure(...)
browser APIs:Other Changes
includeServerName
option (#16442)@sentry/nuxt
external (#16444)v9.24.0
Compare Source
Important Changes
@sentry/angular
peer dependencies to add Angular 20 support (#16414)This release adds support for Angular 20 to the Sentry Angular SDK
@sentry/angular
.Other Changes
unregisterOriginalCallbacks
option tobrowserApiErrorsIntegration
(#16412)v9.23.0
Compare Source
Important changes
Adds an option to opt out of certain
resource.*
spans viaignoreResourceSpans
.For example, to opt out of
resource.script
spans:Other changes
isEnabled
from all SDKs (#16405)init()
(#16354)captureLog
(#16352)_INTERNAL_captureSerializedLog
(#16387)static/chunks/main-*
files forwidenClientFileUpload
(#16406)browserTracingIntegration
code tosetup
hook (#16386)@sentry/nuxt
as external in Rollup (#16407)withScope
keeps span active &_getTraceInfoFromScope
works (#16385)Work in this release was contributed by @Xenossolitarius. Thank you for your contribution!
v9.22.0
Compare Source
Important changes
This is a revert of a feature introduced in
9.20.0
with #16240. This feature was causing crashes in firefox, so we are reverting it. We will re-enable this functionality in the future after fixing the crash.Other changes
ServerBuild
argument and return (#16336)v9.21.0
Compare Source
@fastify/otel
(#16328)OnEvent
decorators (#16306)client
exports toserver
andcloudflare
entries (#16341)Work in this release was contributed by @phthhieu. Thank you for your contribution!
v9.20.0
Compare Source
Important changes
The SDK now automatically collects details passed to
performance.measure
options.Other changes
maxIncomingRequestBodySize
(#16225)aria-label
(#16192)next.route
attribute on root spans (#16297)orgId
option toinit
and DSC (sentry-org_id
in baggage) (#16305)v9.19.0
Compare Source
opentelemetry-instrumentation-remix
(#16145)cancelled
reason (#16277)@fastify/otel
fork to direct url to allow installing without git (#16287)Work in this release was contributed by @sidx1024. Thank you for your contribution!
v9.18.0
Compare Source
Important changes
We now also publish profiling binaries for Node 24.
Other changes
import-in-the-middle
to1.13.1
(#16260)consoleLoggingIntegration
from vercel edge sdk (#16228)@fastify/otel
dependency with pinned Otel v1 deps (#16256)v9.17.0
Compare Source
@fastify/otel
(#15542)v9.16.1
Compare Source
v9.16.0
Compare Source
Important changes
Add a new plugin
makeConfigInjectorPlugin
within our existing vite plugin that updates the global vite config with sentry optionsThis PR implements consistent sampling across traces as outlined in (#15754)
This PR introduces a new
instrumentDurableObjectWithSentry
method to the SDK, which instruments durable objects. We capture both traces and errors automatically.Prisma integration is enabled by default, it should work for both ESM and CJS.
Adds client-side instrumentation for react router's
HydratedRouter
. To enable it, simply replacebrowserTracingIntegration()
withreactRouterTracingIntegration()
in your client-side init call.When running your application in ESM mode, there have been scenarios that resulted in the
http
/https
emitting duplicate spans for incoming requests. This was apparently caused by us double-wrapping the modules for incoming request isolation.In order to solve this problem, the modules are no longer monkey patched by us for request isolation. Instead, we register diagnosticschannel hooks to handle request isolation now.
While this is generally not expected to break anything, there is one tiny change that _may affect you if you have been relying on very specific functionality:
The
ignoreOutgoingRequests
option ofhttpIntegration
receives theRequestOptions
as second argument. This type is not changed, however due to how the wrapping now works, we no longer pass through the full RequestOptions, but re-construct this partially based on the generated request. For the vast majority of cases, this should be fine, but for the sake of completeness, these are the only fields that may be available there going forward - other fields that may have existed before may no longer be set:Other changes
SENTRY_RELEASE
fromenv
(#16201)http.server
spans with 404 status by default (#16205)removeFromDom()
from throwing (#16030)v9.15.0
Compare Source
Important Changes
wrapMcpServerWithSentry
from server packages (#16127)Exports the wrapMcpServerWithSentry which is our MCP server instrumentation from all the server packages.
Adds a best effort mechanism to associate handler spans for
resource
,tool
andprompt
with the incoming message requests instead of the outgoing SSE response.Other Changes
ai
ESM patching (#16152)module.register
(#16125)unstable_sentryVitePluginOptions
correctly (#16156)Work in this release was contributed by @AntoineDuComptoirDesPharmacies. Thank you for your contribution!
v9.14.0
Compare Source
Important Changes
This PR adds Supabase integration to
@sentry/core
, allowing automatic instrumentation of Supabase client operations (database queries and authentication) for performance monitoring and error tracking.SentryGlobalFilter
(#16066)This PR adds better RPC exception handling to
@sentry/nestjs
, preventing application crashes while still capturing errors and warning users when a dedicated filter is needed. The implementation gracefully handles the 'rpc' context type inSentryGlobalFilter
to improve reliability in hybrid applications.This PR adds trace propagation to
@sentry/react-router
by providing utilities to inject trace meta tags into HTML headers and offering a pre-built Sentry-instrumented request handler, improving distributed tracing capabilities across page loads.Other Changes
v9.13.0
Compare Source
Important Changes
feat(node): Add support for winston logger (#15983)
Sentry is adding support for structured logging. In this release we've added support for sending logs to Sentry via the winston logger to the Sentry Node SDK (and SDKs that use the Node SDK under the hood like
@sentry/nestjs
). The Logging APIs in the Sentry SDK are still experimental and subject to change.feat(core): Add
wrapMcpServerWithSentry
to instrument MCP servers from@modelcontextprotocol/sdk
(#16032)The Sentry SDK now supports instrumenting MCP servers from the
@modelcontextprotocol/sdk
package. Compatible with versions^1.9.0
of the@modelcontextprotocol/sdk
package.feat(core): Move console integration into core and add to cloudflare/vercel-edge (#16024)
Console instrumentation has been added to
@sentry/cloudflare
and@sentry/nextjs
Edge Runtime and is enabled by default. Now calls to the console object will be captured as breadcrumbs for those SDKs.feat(bun): Support new
Bun.serve
APIs (#16035)Bun
1.2.6
and above have a newBun.serve
API, which the Bun SDK now supports. The SDK instruments the new routes object that can be used to define routes for the server.Thanks to @Jarred-Sumner for helping us get this supported!
Other Changes
browserTracingIntegration
(#16042)beforeSendLog
after we process log (#16019)unstable_sentryVitePluginOptions
to cli instance (#16033)v9.12.0
Compare Source
Important Changes
feat(feedback): Implement highlighting and hiding controls for screenshots (#15951)
The Sentry SDK now supports highlighting and hiding controls for screenshots in user feedback reports. This functionality is enabled by default.
feat(node): Add
ignoreIncomingRequestBody
callback tohttpIntegration
(#15959)The
httpIntegration
now supports an optionalignoreIncomingRequestBody
callback that can be used to skip capturing the body of incoming requests.The
ignoreIncomingRequestBody
callback receives the URL of the request and should returntrue
if the body should be ignored.Logging Improvements
Sentry is adding support for structured logging. In this release we've made a variety of improvements to logging functionality in the Sentry SDKs.
Other Changes
onRequestSpanStart
hook to browser tracing integration (#15979)captureRouterTransitionStart
hook for capturing navigations (#15981)http.request.prefetch: true
attribute (#15980)clientInstrumentationHook
(#15992)SENTRY_DEBUG
env variable (#15972)authToken
type tostring
(#15985)Work in this release was contributed by @Page- and @Fryuni. Thank you for your contributions!
v9.11.0
Compare Source
http.redirect_count
attribute tobrowser.redirect
span (#15943)consoleLoggingIntegration
for logs (#15955)turbopack
as tag (#15928)sentryHandleRequest
(#15787)module
instead ofrequire
for CJS check (#15927)ErrorBoundary
wrapper (#15930)sentry.previous_trace
span attribute (#15957)v9.10.1
Compare Source
3.2.4
(#15909)v9.10.0
Compare Source
Important Changes
feat: Add support for logs
beforeSendLog
(#15814)All JavaScript SDKs other than
@sentry/cloudflare
and@sentry/deno
now support sending logs via dedicated methods as part of Sentry's upcoming logging product.Logging is gated by an experimental option,
_experiments.enableLogs
.With server-side SDKs like
@sentry/node
,@sentry/bun
or server-side of@sentry/nextjs
or@sentry/sveltekit
, you can do structured logging without needing thefmt
helper function.To filter logs, or update them before they are sent to Sentry, you can use the
_experiments.beforeSendLog
option.feat(browser): Add
diagnoseSdkConnectivity()
function to programmatically detect possible connectivity issues (#15821)The
diagnoseSdkConnectivity()
function can be used to programmatically detect possible connectivity issues with the Sentry SDK.The result will be an object with the following properties:
"no-client-active"
: There was no active client when the function was called. This possibly means that the SDK was not initialized yet."sentry-unreachable"
: The Sentry SaaS servers were not reachable. This likely means that there is an ad blocker active on the page or that there are other connection issues.undefined
: The SDK is working as expected.SDK Tracing Performance Improvements for Node SDKs
dropUndefinedKeys
(#15796)dropUndefinedKeys
forspanToJSON
calls (#15792)SentryError
for PromiseBuffer control flow (#15822)dropUndefinedKeys
in SpanExporter (#15794)SentryError
for event processing control flow (#15823)dropUndefinedKeys
in Node SDK init (#15797)We've been hard at work making performance improvements to the Sentry Node SDKs (
@sentry/node
,@sentry/aws-serverless
,@sentry/nestjs
, etc.). We've seen that upgrading from9.7.0
to9.10.0
leads to 30-40% improvement in request latency for HTTP web-server applications that use tracing with high sample rates. Non web-server applications and non-tracing applications will see smaller improvements.Other Changes
rrweb
to2.35.0
(#15825)3.2.3
(#15829)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 PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.