Requested by: @andreiborza
Merge target: master
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
Version 11.0.0 marks a major release of the Sentry JavaScript SDKs containing breaking changes.
The goal of this release is to be better compatible with OpenTelemetry, make our integrations work across Node.js, Cloudflare, Bun and Deno through run-time and build-time instrumentation, and make span streaming and more permissive data collection the default.
How To Upgrade
Please carefully read through the migration guide in the Sentry docs on how to upgrade from version 10 to version 11. Make sure to select your specific platform/framework in the top left corner: https://docs.sentry.io/platforms/javascript/migration/v10-to-v11/
A comprehensive migration guide outlining all changes can be found within the Sentry JavaScript SDK Repository: https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md
Breaking Changes
All SDKs
- feat: Remove support for initialising via
--require (#22513)
- feat!: Rename deprecated
http.* span attributes (#23574)
- feat!: Rename deprecated
net. span attributes (#23301)
- feat!: Replace
skipOpenTelemetrySetup with enableOpenTelemetrySetup (#23199)
- feat!: Replace the deprecated
http.target span attribute (#23575)
- feat!: Require Node
>=20.19.0 as minimum supported version (#22558)
- feat!: Use
handler span op for terminal request handlers (#22871)
- feat!: Use
middleware span op for web-server middleware (#22852)
- feat(frameworks)!: Use
function op for framework functions (#23047)
- feat(node/cloudflare)!: Remove deprecated
honoIntegration (#22480)
- feat(v11): Drop TypeScript 3.8 support (#18604)
AI integrations
- feat(langchain): Emit gen_ai.pipeline.name instead of langchain.chain.name (#23740)
- ref(anthropic)!: Move Anthropic AI integration to
@sentry/server-utils (#22954)
- ref(google-genai)!: Move Google GenAI integration to
@sentry/server-utils (#22959)
- ref(langchain)!: Move LangChain and LangGraph integrations to
@sentry/server-utils (#22962)
- ref(langgraph)!: Drop gen_ai.create_agent spans (#22840)
- ref(openai)!: Move OpenAI AI integration to
@sentry/server-utils (#22953)
- ref(vercel-ai)!: Move Vercel AI integration to
@sentry/server-utils (#22964)
- ref(workers-ai)!: Move Workers AI integration to
@sentry/server-utils (#22960)
@sentry/angular
- feat(angular,ember,sveltekit)!: Use
router span op for frontend routers (#23086)
- feat(angular)!: Use
ui.mount and function span ops for tracing decorators (#22667)
@sentry/astro
- feat(astro)!: Drop support for Astro 3 (#22683)
- feat(astro)!: Enable orchestrion instrumentation on Cloudflare Workers (#23003)
- feat(astro)!: Remove deprecated
sourceMapsUploadOptions build option (#23630)
- feat(astro)!: Remove unstable_sentryVitePluginOptions (#23370)
- ref(astro)!: Migrate import hook to makeOrchestrionLoader (#22861)
- ref(astro)!: Remove deprecated release/debug conflict workaround from BuildTimeOptionsBase (#23270)
@sentry/aws-serverless
- chore(aws-serverless)!: Drop
nodejs18.x from the Lambda layer runtimes (#23155)
- feat(aws-serverless): Remove deprecated
disableAwsContextPropagation option (#23170)
- feat(aws-serverless)!: Emit
faas.invocation_id and cloud.resource_id (#24384)
- feat(aws-serverless)!: Remove unused
startTrace option and tryPatchHandler (#23219)
- feat(aws-serverless)!: Use
function.aws span op for Lambda invocations (#22677)
- feat(aws)!: Use
queue Span OP for AWS SQS & SNS messaging (#23757)
- ref(aws-serverless)!: Migrate import hook to makeOrchestrionLoader (#22862)
@sentry/browser
- chore(browser)!: Remove legacy profiling option
profilesSampleRate (#23220)
- feat(browser)!: Do not include metrics in base CDN bundle (#23207)
- feat(browser)!: drop browser support for AI integrations (#22438)
- feat(browser)!: Extract
performance.{mark,measure} spans into new userTimingSpansIntegration (#22554)
- feat(browser)!: Extract interaction spans into new
interactionsIntegration (#23295)
- feat(browser)!: Record console breadcrumbs via consoleIntegration (#24387)
- feat(browser)!: Rename
bfcacheIntegration to bfcacheMetricsIntegration (#23776)
- feat(browser)!: Report
browser.navigation.type exactly as web-vitals does (#24479)
- feat(browser)!: Report web vitals for bfcache restores by default (#24325)
- feat(browser)!: Send session status
unhandled instead of crashed for unhandled errors (#22475)
- feat(browser)!: Switch default browser session lifecycle mode to
page (#21245)
- feat(browser)!: Use
browser.paint span op for paint entries (#22673)
- fix(browser)!: stop tagging DOMException.code on events (#23992)
- fix(browser)!: Use snake_case consistently for ops (#23100)
- ref(browser)!: Remove the web vital report event attribute (#24511)
- ref(browser): Remove deprecated
trackFetchStreamPerformance flag (#23172)
- ref(browser)!: Drop Safari 14 support - remove
navigationStart fallback and pagehide listeners (#21293)
- ref(browser)!: Remove
beforeSpanEnd callback in favor of beforeIdleSpanEnd hook (#22818)
@sentry/bundler-plugins
- feat(bundler-plugins)!: Migrate from @sentry/cli to the sentry CLI SDK (#23398)
- ref(bundler-plugins)!: Require webpack 5.1 and remove the
webpack5 entry point (#24455)
@sentry/cloudflare
- feat(cf/vercel-edge)!: Align request data collection with v11 defaults (#22850)
- feat(cloudflare)!: Auto-instrument the Worker by default in the Vite plugin (#23273)
- feat(cloudflare)!: Enable build-time instrumentation by default in Vite plugin (#22950)
- feat(cloudflare)!: Make the nodejs_compat entrypoint the default (#22900)
- feat(cloudflare)!: Match rpcTracePropagationBindings case-insensitively (#23625)
- feat(cloudflare)!: Replace enableRpcTracePropagation with rpcTracePropagationBindings (#23486)
- feat(cloudflare)!: Skip rate limit spans (#23907)
- feat(cloudflare)!: Use
function span op for cron, email and workflow steps (#22703)
- ref(cloudflare)!: Remove deprecated
instrumentD1WithSentry export (#23153)
- ref(cloudflare)!: Remove instrumentPrototypeMethods option (#22961)
- ref(cloudflare)!: Remove wrapRequestHandler from main entrypoint (#22881)
- ref(cloudflare)!: Use shared
SentryTracerProvider for OpenTelemetry interop (#23300)
@sentry/core
- feat(core): Remove
span from ScopeData (#23225)
- feat(core)!: Align request data collection with v11 defaults (#22853)
- feat(core)!: Default
attachStacktrace to true (#22572)
- feat(core)!: Enable data collection by default (#22917)
- feat(core)!: Enable span streaming by default (#22642)
- feat(core)!: Flip
genAI defaults to collect it by default (#22706)
- feat(core)!: Gate incoming HTTP body capture on
dataCollection.httpBodies (#22834)
- feat(core)!: Make
beforeSendSpan compatible with streamed spans by default (#22643)
- feat(core)!: Make
tracePropagationTargets matching case-insensitive (#23534)
- feat(core)!: Remove
enableMetrics option (#23321)
- feat(core)!: Remove
enableTruncation flag and all AI integrations truncation logic (#23045)
- feat(core)!: Remove
endTimestamp from SentrySpanArguments (#23269)
- feat(core)!: Remove
kind for spans, move to sentry.kind attribute (#22528)
- feat(core)!: Remove
queryParams in favor of urlQueryParams (#22711)
- feat(core)!: Remove
scope.clear() method (#23230)
- feat(core)!: Remove
sendDefaultPii in favor of dataCollection (#22918)
- feat(core)!: Remove
sentry.sdk_meta.gen_ai.input.messages.original_length attribute (#22516)
- feat(core)!: Remove
streamGenAiSpans flag (#22495)
- feat(core)!: Remove deprecated
_experiments.enableLogs option (#22808)
- feat(core)!: Remove deprecated
inboundFiltersIntegration (#23008)
- feat(core)!: Remove deprecated
instrumentLangGraph (#22485)
- feat(core)!: Remove Unstable*PluginOptions build option types (#23390)
- feat(core)!: Return
StreamedSpanJSON from spanToJSON (#23238)
- feat(core)!: Update all spans to use
url.full, url.fragment and url.query (#22547)
- feat(core)!: Use
rpc span op for tRPC spans (#22914)
- feat(server-utils,core)!: Use
router span op for backend router layers (#23088)
- fix(core)!: Remove
enableLogs option (#23319)
- ref(core)!: Make
attributes in sampling context required (#24153)
- ref(core)!: Align gen_ai cache token attributes with conventions (#22811)
- ref(core)!: Make
attributes required on ScopeData (#23277)
- ref(core)!: Migrate to SENTRY_SEGMENT_NAME_SOURCE (#23368)
- ref(core)!: Move
getComponentName to browser-utils (#23716)
- ref(core)!: Remove
getLocationHref export from core (#23717)
- ref(core)!: Remove
startIdleSpan from server exports (#23420)
- ref(core)!: Remove
supportsDOMError, supportsHistory, supportsReportingObserver exports (#23718)
- ref(core)!: Remove
supportsNativeFetch export (#23719)
- ref(core)!: Remove deprecated
addAutoIpAddressToUser export (#23174)
- ref(core)!: Remove deprecated
htmlTreeAsString from core (#23715)
- ref(core)!: Remove deprecated
patchExpressModule(options) signature (#23175)
- ref(core)!: Remove deprecated positional
spanOrigin argument from instrumentFetchRequest (#23177)
- ref(core)!: Remove experimental
enableMetrics / beforeSendMetric flags (#23276)
- ref(core)!: Remove orphaned deprecated Express patch APIs (#23827)
- ref(core)!: Rename
gen_ai.request.available_tools to gen_ai.tool.definitions (#22820)
- ref(core)!: Rename
gen_ai.system to gen_ai.provider.name (#22814)
- ref(core)!: Rename
gen_ai.tool.input to gen_ai.tool.call.arguments (#22821)
- ref(core)!: Rename
gen_ai.tool.output to gen_ai.tool.call.result (#22822)
- ref(core)!: Rename Vercel AI cache/reasoning token attributes (#22823)
- ref(core)!: Replace deprecated
code.* and fs_error span attributes (#23401)
- ref(core)!: Split browser/server-only exports out of the default entrypoint (#23762)
- ref(core)!: Stop setting deprecated
gen_ai.tool.type span attribute (#22824)
- ref(core)!: Unify
tracePropagation vs propagateTrace option names (#23649)
@sentry/deno
- feat(deno)!: Align remaining denoHttpIntegration options with httpIntegration (#23692)
- feat(deno)!: Record console breadcrumbs via consoleIntegration (#24388)
- feat(deno)!: rename orchestrion integrations to match other SDKs (#22404)
- fix(deno)!: Enable sessions for HTTP requests and align option names (#23313)
- fix(deno)!: require deno >=2.8.3 (#22790)
@sentry/ember
- feat(angular,ember,sveltekit)!: Use
router span op for frontend routers (#23086)
- feat(ember)!: Update to v2 addon format (#23252)
- feat(ember)!: Use
function and ui.task span ops for route hooks and runloop (#22669)
- ref(ember)!: Change
'ui.ember.component.render' to ui.render (#23587)
@sentry/feedback
- fix(feedback)!: always reject sendFeedback with an Error (#20475)
@sentry/google-cloud-serverless
- feat(google-cloud-serverless)!: Use
function.gcp op for GCP functions (#23050)
- feat(google-cloud-serverless)!: Use
grpc span op for GCP gRPC calls (#22666)
- feat(google-cloud-serverless)!: Use
http.client span op for GCP HTTP requests (#22660)
- ref(google-cloud-serverless)!: Migrate import hook to makeOrchestrionLoader (#22863)
@sentry/nestjs
- feat(nestjs)!: Remove import-in-the-middle instrumentation (#22805)
- feat(nestjs)!: Use
function span op for setup & lifecycle handlers (#22897)
@sentry/nextjs
- feat(nextjs)!: Auto-wire orchestrion build-time instrumentation (#22921)
- feat(nextjs)!: Drop
vercel- prefix from default environment and deploys (#24197)
- feat(nextjs)!: Drop support for Next.js 13 (#22635)
- feat(nextjs)!: Remove deprecated build-time config options (#23221)
- feat(nextjs)!: Remove middleware bypass for tunnel route requests (#24589)
- feat(nextjs)!: Remove unstable_sentryWebpackPluginOptions (#23372)
- feat(nextjs)!: Use
middleware span op for Next.js middleware (#22674)
- ref(nextjs)!: Migrate import hook to makeOrchestrionLoader (#22864)
- ref(nextjs)!: Move
withSentryConfig to @sentry/nextjs/config (#23628)
@sentry/nitro
- feat(nuxt, nitro)!: Use convention cache ops for storage spans (#22689)
@sentry/node
- chore(node)!: Remove legacy profiling options (
profilesSampleRate and profilesSampler) (#23216)
- feat(express)!: Remove
shouldHandleError from setupExpressErrorHandler (#23732)
- feat(node)!: Always report the encoded body size on HTTP spans (#23576)
- feat(node)!: Default most SDKs to a no-tracer-provider setup (#22957)
- feat(node)!: Drop support for Fastify
<3.21.0 (#22752)
- feat(node)!: Make channel-based instrumentation the default (#22501)
- feat(node)!: Make dataloader and knex integrations channel-only (#22754)
- feat(node)!: Remove
init, preload entry points and preloadOpenTelemetry (#23074)
- feat(node)!: Remove connect integration (#22432)
- feat(node)!: Remove import-in-the-middle ESM loader and deprecated instrumentation base (#22755)
- feat(node)!: split childProcess integration into childProcess and worker integrations (#22886)
- feat(node)!: Stop inferring name for spans (#22712)
- feat(node)!: Use
db.query and db span ops for Redis (#22690)
- fix(node)!: rejection warning in strict mode (#21160)
- ref!(node): Remove Fastify error handler setter (#23411)
- ref(express)!: Export a single ExpressIntegrationOptions type (#23763)
- ref(node): Merge
@sentry/node-core back into @sentry/node (#22418)
- ref(node)!: Consolidate httpIntegration options (#23443)
- ref(node)!: Remove
@opentelemetry/instrumentation dependency (#22843)
- ref(node)!: Remove deprecated
prismaInstrumentation option (#22898)
- ref(node)!: Remove deprecated fastify exports, deprecate
setupFastifyErrorHandler (#23460)
- ref(node)!: Remove legacy incoming HTTP span hooks and default keepAlive to true (#23396)
@sentry/nuxt
- feat(nuxt, nitro)!: Use convention cache ops for storage spans (#22689)
- feat(nuxt)!: Auto-wire orchestrion build-time instrumentation (#22915)
- feat(nuxt)!: Bundle server config into Nitro build (#24094)
- feat(nuxt)!: Enable orchestrion instrumentation on Cloudflare (#23015)
- feat(nuxt)!: Remove deprecated
sourceMapsUploadOptions module option (#22875)
- feat(nuxt)!: Remove unstable_sentryBundlerPluginOptions (#23351)
@sentry/opentelemetry
- feat(opentelemetry): Remove
setupEventContextTrace (#23226)
- feat(opentelemetry): Remove unused exports (#22581)
- feat(opentelemetry)!: Drop
.prefetch suffix from inferred HTTP span ops (#23094)
- feat(opentelemetry)!: Infer op from
faas.trigger (#23053)
- feat(opentelemetry)!: Remove
SentrySpanProcessor & SentrySampler (#22557)
- feat(opentelemetry)!: Simplify propagation and remove custom OTel tracing utils (#22702)
- ref(opentelemetry): Drop OTel resource and
contexts.otel.resource (#23013)
- ref(opentelemetry): Remove
OpenTelemetrySpanContext (#23285)
- ref(opentelemetry)!: Streamline OTEL context managment into
setOpenTelemetryContextAsyncContextStrategy() (#22586)
@sentry/profiling-node
- ref(profiling-node)!: Remove
prune-profiler-binaries bin script (#23104)
@sentry/react
- feat(react)!: Drop support for React 16 (#22665)
- feat(vue,svelte,react)!: Use
ui.* ops for component lifecycles (#23085)
- ref(react)!: Remove redundant
url.path.params.<key> attribute (#23506)
@sentry/react-router
- feat(react-router)!: Raise minimum supported React Router version to >= 7.15 (#22481)
- feat(react-router)!: Remove deprecated server wrappers (#22529)
- feat(react-router)!: Remove server OTel instrumentation (#22551)
- feat(react-router)!: Remove unstable_sentryVitePluginOptions (#23374)
- ref(react-router)!: Move Vite plugin exports to subpath
@sentry/react-router/vite (#23509)
- ref(react-router)!: Remove deprecated Vite build options and back-compat shims (#23229)
@sentry/remix
- feat(remix)!: Do not double gate action form data capture (#23014)
- feat(remix)!: Move the Vite plugin to
@sentry/remix/vite (#23989)
- feat(remix)!: Remove import-in-the-middle instrumentation (#22815)
- ref(remix): Drop Remix v1 route-convention handling (#22726)
- ref(remix)!: Align action form-data span attribute with conventions (#23227)
- ref(remix)!: Migrate import hook to makeOrchestrionLoader (#22865)
@sentry/server-utils
- feat(server-utils,core)!: Use
router span op for backend router layers (#23088)
- feat(server-utils)!: Align AMQP and Redis span attributes (#23324)
- feat(server-utils)!: Clean up gen ai ops (#23076)
- feat(server-utils)!: Emit
queue.* span ops for messaging spans (#23042)
- feat(server-utils)!: Emit low cardinality postgres db span names (#23600)
- feat(server-utils)!: Rename
otlpIntegration to openTelemetryIntegration (#23938)
- feat(server-utils)!: Start Redis spans as
cache spans (#23933)
- fix(server-utils)!: Register channel integrations on versions with native channels (#23405)
- ref(server-utils)!: Replace deprecated
ai.* and gen_ai.prompt attributes (#23410)
- ref(server-utils)!: Replace deprecated
db.* span attributes (#23408)
- ref(server-utils)!: Replace deprecated
net.* span attributes on db and messaging spans (#23422)
- ref(server-utils)!: Stop setting
koa.name on Koa spans (#24420)
- ref(server-utils)!: Use
function.gcp op for firebase function spans (#23022)
@sentry/solidstart
- feat(solidstart)!: Align v1 build options with BuildTimeOptionsBase (#23388)
- feat(solidstart)!: Remove unstable_sentryVitePluginOptions (#23389)
@sentry/svelte
- feat(vue,svelte,react)!: Use
ui.* ops for component lifecycles (#23085)
@sentry/sveltekit
- feat(angular,ember,sveltekit)!: Use
router span op for frontend routers (#23086)
- feat(sveltekit)!: Enable orchestrion instrumentation on Cloudflare (#22967)
- feat(sveltekit)!: Remove deprecated
sourceMapsUploadOptions Vite plugin option (#22874)
- feat(sveltekit)!: Remove unstable_sentryVitePluginOptions (#23366)
- fix(sveltekit)!: Move
sentrySvelteKit off the runtime entry to @sentry/sveltekit/vite (#23247)
@sentry/tanstackstart-react
- chore(tanstackstart)!: Remove deprecated
@sentry/tanstackstart utility package (#22427)
- ref(tanstackstart-react)!: Migrate import hook to makeOrchestrionLoader (#22866)
@sentry/types
- chore(types)!: Stop publishing
@sentry/types (#23073)
@sentry/vercel-edge
- feat(cf/vercel-edge)!: Align request data collection with v11 defaults (#22850)
@sentry/vue
- feat(vue,svelte,react)!: Use
ui.* ops for component lifecycles (#23085)
Other Changes
- feat(browser): Emit low cardinality
browser request timing span names (#24602)
- feat(browser): Emit low-cardinality
ui span names (#24578)
- feat(browser): Report
browser.navigation.type on the pageload span (#24509)
- feat(browser): Report the INP target and interaction type as attributes (#24573)
- feat(cloudflare): Auto-register Flue instrumentation in bundled workers (#24476)
- feat(core): Consolidate fetch integrations (#24346)
- feat(core): Send
sentry.is_localhost on every streamed span (#24597)
- feat(deps): bump @apm-js-collab/tracing-hooks to 0.13.2 (#24518)
- feat(deps): bump devalue from 5.9.0 to 5.9.2 (#24486)
- feat(nestjs): Emit low cardinality
@OnEvent function span name (#24588)
- feat(node): Add eveInstrumentation and eveIntegration for eve apps (#24539)
- feat(node): Add Groq and Together AI integrations (#24454)
- feat(react-router): Emit low-cardinality names for
function spans (#24567)
- feat(remix): Upload source maps from the Vite plugin (#24463)
- feat(tanstackstart-react): Emit low-cardinality names for
function spans (#24568)
- feat(vue,nuxt): Record default UI spans without Options API (mixins) (#24174)
- feat: Add
url.full and url.path attributes to http.server spans (#22496)
- feat: Always stream INP and remove standalone v1 spans (#22517)
- feat: Emit low-cardinality http.client span names for fetch and XHR (#23682)
- feat: Emit low-cardinality http.client span names for node:http and undici (#23690)
- feat: Emit low-cardinality http.server span names in framework SDKs (#23597)
- feat: Emit low-cardinality pageload span names when streaming spans (#23424)
- feat: Emit low-cardinality span names for messaging spans (amqplib, kafka, ...) (#23652)
- feat(angular): Emit low cardinality
TraceMethod span name and preserve description (#24239)
- feat(astro): Auto-wire orchestrion build-time instrumentation (#22830)
- feat(aws-serverless): Emit low cardinality
function.aws span names (#24072)
- feat(browser): Add
bfcacheIntegration (#22397)
- feat(browser): Add shim for metrics (#23202)
- feat(browser): Emit low cardinality navigation span names (#23550)
- feat(browser): Emit low cardinality resource span names (#23546)
- feat(browser): Report web vitals for bfcache restores (#23750)
- feat(browser): Report web vitals for soft navigations (#23425)
- feat(browser): Run static beforeSendSpan for INP spans (#22877)
- feat(browser): Start a navigation span for bfcache restores (#23748)
- feat(bun): Add
bunHttpServerIntegration (#22870)
- feat(bun): Capture Bun.serve request bodies with
maxRequestBodySize (#24233)
- feat(bun): Instrument outgoing fetch requests (#22869)
- feat(bundler-plugins): Frameworks use
@sentry/bundler-plugins (#22392)
- feat(bundler): Add Node bundler plugins (#22125)
- feat(cloudflare): Add cacheClient to reuse the client across invocations (#23151)
- feat(cloudflare): Add span ops for rate limit and Durable Object WebSocket spans (#23211)
- feat(cloudflare): Bootstrap Mastra observability in bundled workers (#24381)
- feat(cloudflare): Derive rpcTracePropagationBindings from the wrangler config (#23491)
- feat(cloudflare): Emit low cardinality
function span names and preserve span descriptions (#24246)
- feat(cloudflare): Emit low cardinality D1 db span names (#23604)
- feat(cloudflare): Instrument module-scope orchestrion channels on workerd (#24386)
- feat(cloudflare): Make vercelAIIntegration the default (#22901)
- feat(cloudflare): Prepare for nodejs_compat entrypoint (#22891)
- feat(core): Accept
CollectBehavior shorthand for dataCollection.httpHeaders (#24336)
- feat(core): Add
afterEnvelope and flushTraceSpans client hooks (#23136)
- feat(core): Add
filterUrlQuery util (#23060)
- feat(core): Add
refs field to Scope for non-serialized references (#23236)
- feat(core): Add
safeCallback helper for isolating user-provided callbacks (#23760)
- feat(core): Add build-time options for bundler plugin parity (#23348)
- feat(core): Add low cardinality span name fallbacks (#23516)
- feat(core): Add the
dataCollection.queues option (#24087)
- feat(core): Allow to pass scope to
getActiveSpan (#23222)
- feat(core): Always flush streamed span traces after segment end by default (#23714)
- feat(core): Default span status to
ok in transaction mode (#22521)
- feat(core): Deprecate
beforeSendTransaction and ignoreTransactions and log warnings if used with streaming (#22908)
- feat(core): Deprecate
forceTransaction option in StartSpanOptions (#23821)
- feat(core): Emit low cardinality mcp notification span names (#23586)
- feat(core): Emit low cardinality mcp.server span names (#23569)
- feat(core): emit low cardinality request handler span names (#23614)
- feat(core): Emit low cardinality router span names (#23547)
- feat(core): Emit low cardinality supabase db span names (#23606)
- feat(core): Emit low-cardinality
cache.* span names (#23830)
- feat(core): Emit low-cardinality gen_ai inference span names when streaming (#23573)
- feat(core): Emit low-cardinality http.server span names when streaming (#23596)
- feat(core): Expose
sentry.op attribute to samplers (#23354)
- feat(core): Isolate throwing user callbacks instead of capturing them as events (#23770)
- feat(core): Only check for native fetch in browser (#22893)
- feat(core): Record
callback_error client reports for throwing user callbacks (#23903)
- feat(core): Streamline tracing channel bindings (#23218)
- feat(core): Use
getActiveSpan instead of _getSpanFromScope for logs & metrics (#23223)
- feat(deno): Add
maxRequestBodySize to capture HTTP bodies (#22912)
- feat(deno): add anthropic integration (#22468)
- feat(deno): add aws integration (#22465)
- feat(deno): Add conversationIdIntegration to default integrations (#24299)
- feat(deno): add express integration (#22461)
- feat(deno): add genericPool integration (#22452)
- feat(deno): add google-genai integration (#22469)
- feat(deno): add graphql integration (#22464)
- feat(deno): add hapi integration (#22462)
- feat(deno): add kafkajs integration (#22463)
- feat(deno): add langchain integration (#22471)
- feat(deno): add langgraph integration (#22472)
- feat(deno): add lruMemoizer integration (#22453)
- feat(deno): add mysql2 integration (#22450)
- feat(deno): add postgresjs integration (#22448)
- feat(deno): add tedious integration (#22451)
- feat(deno): add vercelai integration (#22470)
- feat(deno): instrument outgoing fetch requests (#24121)
- feat(effect): Derive span ops for Effect tracer spans (#23215)
- feat(ember): Give component definition lookups their own span op (#24271)
- feat(google-cloud-serverless): Emit low cardinality
function.gcp span names (#24060)
- feat(hono): Support
.query() handlers (#23283)
- feat(nestjs): Add
code.function.name attribute to function spans for description inference (#24305)
- feat(nestjs): Add support for NestJS v12 (#23721)
- feat(nextjs): Align build options with BuildTimeOptionsBase (#23563)
- feat(nextjs): Emit low cardinality
function span names (#24319)
- feat(nextjs): Emit low cardinality
function span names for server components (#24333)
- feat(nextjs): Record cache spans for
use cache functions (#24302)
- feat(nextjs): remove tracing from pages router API routes (#18394)
- feat(nextjs): Unify reactComponentAnnotation across webpack and Turbopack (#23268)
- feat(node): Add
eveConversationHook() to link eve sessions as Sentry conversations (#24247)
- feat(node): Add
getInstrumentedModuleNames() (#24254)
- feat(node): Add build-time instrumentation opt-out to bundler plugins (#22756)
- feat(node): Add build-time opt-out for runtime channel injection (#23475)
- feat(node): Add first-party Mastra integration (#23823)
- feat(node): Add Mistral AI integration (#24243)
- feat(node): Always set up express, fastify, koa, hapi integrations (#23473)
- feat(node): Auto-register Hapi error handler on server start (#23461)
- feat(node): Auto-register Koa error handler on app start (#23463)
- feat(node): Capture Express errors automatically via
expressIntegration (#23464)
- feat(node): Deprecate
ignoreStatusCodes in http integrations (#23973)
- feat(node): Enable dataloader and knex integrations by default (#24312)
- feat(nuxt): Emit low cardinality db span names (#23605)
- feat(nuxt): Enable server-side Sentry during
nuxt dev on Nitro v3 (Nuxt 5) (#23644)
- feat(react-router): Auto-wire orchestrion build-time instrumentation (#22809)
- feat(react-router): Capture server build in dev mode for middleware names (#22631)
- feat(react): Add
@sentry/react/react-router entry with automatic React Router hooks (#24014)
- feat(remix): Auto-wire orchestrion build-time instrumentation (#23988)
- feat(remix): Emit low cardinality
function span names (#24323)
- feat(server-runtime-injection): Split runtime orchestrion injection into a dedicated package (#23685)
- feat(server-utils): Add
db span op for generic-pool acquire spans (#23213)
- feat(server-utils): Add
otlpIntegration to connect Sentry to an existing OpenTelemetry setup (#23099)
- feat(server-utils): Add cache span ops for DataLoader
prime, clear and clearAll (#23212)
- feat(server-utils): Add first-party Flue instrumentation (#24265)
- feat(server-utils): Add more channel integration definitions (#23477)
- feat(server-utils): Emit low cardinality
function.gcp span names for firebase functions (#24069)
- feat(server-utils): Emit low cardinality graphql span names (#23542)
- feat(server-utils): Emit low cardinality knex, tedious and prisma db span names (#23602)
- feat(server-utils): Emit low cardinality mongodb span names (#23603)
- feat(server-utils): Emit low cardinality mongoose db span names (#23782)
- feat(server-utils): Emit low cardinality mysql db span names (#23601)
- feat(server-utils): Emit low cardinality redis span names (#23741)
- feat(server-utils): Emit low-cardinality gen_ai agent span names when streaming (#23582)
- feat(server-utils): Implement
setAsyncLocalStorageAsyncContextStrategy (#22889)
- feat(solid-start): Add
code.function.name attribute to solid-start function spans (#24316)
- feat(solidstart): Add SolidStart 2 support (#23090)
- feat(solidstart): Auto-wire orchestrion build-time instrumentation (#22827)
- feat(sveltekit): Auto-wire orchestrion build-time instrumentation (#22768)
- feat(sveltekit): Emit low cardinality
function spans (#24341)
- feat(tanstackstart): Auto-wire orchestrion build-time instrumentation (#22902)
- feat(vue): Add Options API detection guard (#23568)
- feat(wasm): patch non-streaming load paths (#23767)
- fix(astro): Fall back to
dataCollection.userInfo for trackClientIp (#24091)
- fix(browser): Default pageload span start time to
timeOrigin (#23502)
- fix(browser): End the active idle span on pagehide (#23779)
- fix(browser): Forward uncaught worker errors with their stack (#24210)
- fix(browser): Keep the best element name captured for an interaction (#24272)
- fix(browser): Respect
dataCollection.httpHeaders.request in httpContextIntegration (#23025)
- fix(browser): Source FCP from web-vitals
onFCP and rebase FP against activationStart (#23032)
- fix(browser-utils): Fix soft navigation vital correlation race (#24519)
- fix(bun): Respect caller-supplied
runtime option (#24487)
- fix(bun): Use namespace imports for
node:http in bunHttpServerIntegration (#24584)
- fix(bundler-plugins): do not warn on known sourcemap-less chunks (#22267)
- fix(bundler-plugins): Preserve directive prologues during bundle injection (#24221)
- fix(cloudflare): Bind pass-through Queue producer methods to the binding (#24592)
- fix(cloudflare): Remove conflicting
faas.queue op on queue consumer spans (#22664)
- fix(core): Apply the sensitive denylist to cookie headers and configured fetch headers (#24090)
- fix(core): Avoid retrying failing MCP handlers (#24505)
- fix(core): correct MCP error and request attribution (#24493)
- fix(core): instrument MCP transports before start (#23978)
- fix(core): Stop sending client reports for breadcrumbs (#24537)
- fix(core): Apply
dataCollection.urlQueryParams to url.full and url.query (#23061)
- fix(core): Apply capture mechanism to originally captured exception (#23320)
- fix(core): Attribute errors to the span they escaped (#23666)
- fix(core): Catch
beforeSendSpan callback throws (#22836)
- fix(core): Do not activate ignored spans in the tracing-channel binding (#22981)
- fix(core): do not unnecessarily defer offline transport send (#24027)
- fix(core): Filter query params in
url.full on request data and navigate errors (#23143)
- fix(core): Normalize http header attribute keys according to OTel spec (#24222)
- fix(core): Propagate sample_rand when continuing a trace without incoming baggage (#22980)
- fix(core): Read external propagation context from the carrier (#23271)
- fix(core): Set http cookie header attributes as string arrays (#24435)
- fix(core): Set http header span attributes as string arrays (#24231)
- fix(core): Stop
supabaseIntegration from ending spans twice (#24126)
- fix(core): Track quote state when sanitizing SQL literals (#23659)
- fix(deno): Don't throw in Deno.serve wrapper when no client is bound (#24030)
- fix(deno): Gate tracing integrations on hasSpansEnabled (#24070)
- fix(deno): Propagate stream cancellation (#24054)
- fix(effect): Remove span op fallback to
function (#24263)
- fix(ember): Add route IDs to pageload and navigation spans (#24372)
- fix(ember): Guard
routerService.recognize() against unrecognizable URLs (#24120)
- fix(ember): Stop retaining component render payloads in beforeEntries (#23052)
- fix(feedback): Stop long error messages from resizing the feedback dialog (#23376)
- fix(google-genai): Map messages to the gen_ai conventions (#24352)
- fix(nextjs): Apply
silent to the SDK's own build logs (#23621)
- fix(nextjs): Correct in_app for Turbopack dev server stack frames (#23248)
- fix(nextjs): Don't report Next.js prerender control flow errors (#23691)
- fix(nextjs): Keep router.back/forward navigation type under span streaming (#24074)
- fix(nextjs): Make request data available to
tracesSampler for edge middleware root spans (#22232)
- fix(nextjs): Parameterize
[lng] locale routes and prefer narrower routes over catch-alls (#23520)
- fix(nextjs): Prevent sourceMappingURL stripping from truncating minified chunks (#24022)
- fix(nextjs): Print unsupported Turbopack warning once (#24053)
- fix(nextjs): Stop baking absolute paths into server chunks (#23267)
- fix(nextjs): Treat static route span names as low-cardinality names (#23503)
- fix(node): Build-time instrument the ESM build of graphql (#23669)
- fix(node): Move Async context strategy setup to NodeClient.init() (#23458)
- fix(node): Register diagnostics-channel injection in
NodeClient con… (#24293)
- fix(node): Support @google/genai v2 in auto-instrumentation (#23093)
- fix(nuxt): Import from
#imports/server in addMiddlewareImports() (#24150)
- fix(nuxt): Remove setting
moduleSideEffects in Nuxt 5 / Nitro 3 (#24309)
- fix(nuxt): Stop flushing the client on every HTTP response (#23312)
- fix(nuxt): Stop importing h3 in the Nitro error hook (#24283)
- fix(react-router): Key server middleware cou
Changelog truncated for issue body.
Requested by: @andreiborza
Merge target: master
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
Version
11.0.0marks a major release of the Sentry JavaScript SDKs containing breaking changes.The goal of this release is to be better compatible with OpenTelemetry, make our integrations work across Node.js, Cloudflare, Bun and Deno through run-time and build-time instrumentation, and make span streaming and more permissive data collection the default.
How To Upgrade
Please carefully read through the migration guide in the Sentry docs on how to upgrade from version 10 to version 11. Make sure to select your specific platform/framework in the top left corner: https://docs.sentry.io/platforms/javascript/migration/v10-to-v11/
A comprehensive migration guide outlining all changes can be found within the Sentry JavaScript SDK Repository: https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md
Breaking Changes
All SDKs
--require(#22513)http.*span attributes (#23574)net.span attributes (#23301)skipOpenTelemetrySetupwithenableOpenTelemetrySetup(#23199)http.targetspan attribute (#23575)>=20.19.0as minimum supported version (#22558)handlerspan op for terminal request handlers (#22871)middlewarespan op for web-server middleware (#22852)functionop for framework functions (#23047)honoIntegration(#22480)AI integrations
@sentry/server-utils(#22954)@sentry/server-utils(#22959)@sentry/server-utils(#22962)@sentry/server-utils(#22953)@sentry/server-utils(#22964)@sentry/server-utils(#22960)@sentry/angular
routerspan op for frontend routers (#23086)ui.mountandfunctionspan ops for tracing decorators (#22667)@sentry/astro
sourceMapsUploadOptionsbuild option (#23630)@sentry/aws-serverless
nodejs18.xfrom the Lambda layer runtimes (#23155)disableAwsContextPropagationoption (#23170)faas.invocation_idandcloud.resource_id(#24384)startTraceoption andtryPatchHandler(#23219)function.awsspan op for Lambda invocations (#22677)queueSpan OP for AWS SQS & SNS messaging (#23757)@sentry/browser
profilesSampleRate(#23220)performance.{mark,measure}spans into newuserTimingSpansIntegration(#22554)interactionsIntegration(#23295)bfcacheIntegrationtobfcacheMetricsIntegration(#23776)browser.navigation.typeexactly as web-vitals does (#24479)unhandledinstead ofcrashedfor unhandled errors (#22475)page(#21245)browser.paintspan op for paint entries (#22673)trackFetchStreamPerformanceflag (#23172)navigationStartfallback andpagehidelisteners (#21293)beforeSpanEndcallback in favor ofbeforeIdleSpanEndhook (#22818)@sentry/bundler-plugins
webpack5entry point (#24455)@sentry/cloudflare
functionspan op for cron, email and workflow steps (#22703)instrumentD1WithSentryexport (#23153)SentryTracerProviderfor OpenTelemetry interop (#23300)@sentry/core
spanfromScopeData(#23225)attachStacktraceto true (#22572)genAIdefaults to collect it by default (#22706)dataCollection.httpBodies(#22834)beforeSendSpancompatible with streamed spans by default (#22643)tracePropagationTargetsmatching case-insensitive (#23534)enableMetricsoption (#23321)enableTruncationflag and all AI integrations truncation logic (#23045)endTimestampfromSentrySpanArguments(#23269)kindfor spans, move tosentry.kindattribute (#22528)queryParamsin favor ofurlQueryParams(#22711)scope.clear()method (#23230)sendDefaultPiiin favor ofdataCollection(#22918)sentry.sdk_meta.gen_ai.input.messages.original_lengthattribute (#22516)streamGenAiSpansflag (#22495)_experiments.enableLogsoption (#22808)inboundFiltersIntegration(#23008)instrumentLangGraph(#22485)StreamedSpanJSONfromspanToJSON(#23238)url.full,url.fragmentandurl.query(#22547)rpcspan op for tRPC spans (#22914)routerspan op for backend router layers (#23088)enableLogsoption (#23319)attributesin sampling context required (#24153)attributesrequired onScopeData(#23277)getComponentNameto browser-utils (#23716)getLocationHrefexport from core (#23717)startIdleSpanfrom server exports (#23420)supportsDOMError,supportsHistory,supportsReportingObserverexports (#23718)supportsNativeFetchexport (#23719)addAutoIpAddressToUserexport (#23174)htmlTreeAsStringfrom core (#23715)patchExpressModule(options)signature (#23175)spanOriginargument frominstrumentFetchRequest(#23177)enableMetrics/beforeSendMetricflags (#23276)gen_ai.request.available_toolstogen_ai.tool.definitions(#22820)gen_ai.systemtogen_ai.provider.name(#22814)gen_ai.tool.inputtogen_ai.tool.call.arguments(#22821)gen_ai.tool.outputtogen_ai.tool.call.result(#22822)code.*andfs_errorspan attributes (#23401)gen_ai.tool.typespan attribute (#22824)tracePropagationvspropagateTraceoption names (#23649)@sentry/deno
@sentry/ember
routerspan op for frontend routers (#23086)functionandui.taskspan ops for route hooks and runloop (#22669)'ui.ember.component.render'toui.render(#23587)@sentry/feedback
@sentry/google-cloud-serverless
function.gcpop for GCP functions (#23050)grpcspan op for GCP gRPC calls (#22666)http.clientspan op for GCP HTTP requests (#22660)@sentry/nestjs
functionspan op for setup & lifecycle handlers (#22897)@sentry/nextjs
vercel-prefix from default environment and deploys (#24197)middlewarespan op for Next.js middleware (#22674)withSentryConfigto@sentry/nextjs/config(#23628)@sentry/nitro
@sentry/node
profilesSampleRateandprofilesSampler) (#23216)shouldHandleErrorfromsetupExpressErrorHandler(#23732)<3.21.0(#22752)init,preloadentry points andpreloadOpenTelemetry(#23074)db.queryanddbspan ops for Redis (#22690)@sentry/node-coreback into@sentry/node(#22418)@opentelemetry/instrumentationdependency (#22843)prismaInstrumentationoption (#22898)setupFastifyErrorHandler(#23460)@sentry/nuxt
sourceMapsUploadOptionsmodule option (#22875)@sentry/opentelemetry
setupEventContextTrace(#23226).prefetchsuffix from inferred HTTP span ops (#23094)faas.trigger(#23053)SentrySpanProcessor&SentrySampler(#22557)contexts.otel.resource(#23013)OpenTelemetrySpanContext(#23285)setOpenTelemetryContextAsyncContextStrategy()(#22586)@sentry/profiling-node
prune-profiler-binariesbin script (#23104)@sentry/react
ui.*ops for component lifecycles (#23085)url.path.params.<key>attribute (#23506)@sentry/react-router
@sentry/react-router/vite(#23509)@sentry/remix
@sentry/remix/vite(#23989)@sentry/server-utils
routerspan op for backend router layers (#23088)queue.*span ops for messaging spans (#23042)otlpIntegrationtoopenTelemetryIntegration(#23938)cachespans (#23933)ai.*andgen_ai.promptattributes (#23410)db.*span attributes (#23408)net.*span attributes on db and messaging spans (#23422)koa.nameon Koa spans (#24420)function.gcpop for firebase function spans (#23022)@sentry/solidstart
@sentry/svelte
ui.*ops for component lifecycles (#23085)@sentry/sveltekit
routerspan op for frontend routers (#23086)sourceMapsUploadOptionsVite plugin option (#22874)sentrySvelteKitoff the runtime entry to@sentry/sveltekit/vite(#23247)@sentry/tanstackstart-react
@sentry/tanstackstartutility package (#22427)@sentry/types
@sentry/types(#23073)@sentry/vercel-edge
@sentry/vue
ui.*ops for component lifecycles (#23085)Other Changes
browserrequest timing span names (#24602)uispan names (#24578)browser.navigation.typeon the pageload span (#24509)sentry.is_localhoston every streamed span (#24597)@OnEventfunction span name (#24588)functionspans (#24567)functionspans (#24568)url.fullandurl.pathattributes tohttp.serverspans (#22496)TraceMethodspan name and preserve description (#24239)function.awsspan names (#24072)bfcacheIntegration(#22397)bunHttpServerIntegration(#22870)maxRequestBodySize(#24233)@sentry/bundler-plugins(#22392)functionspan names and preserve span descriptions (#24246)CollectBehaviorshorthand fordataCollection.httpHeaders(#24336)afterEnvelopeandflushTraceSpansclient hooks (#23136)filterUrlQueryutil (#23060)refsfield toScopefor non-serialized references (#23236)safeCallbackhelper for isolating user-provided callbacks (#23760)dataCollection.queuesoption (#24087)getActiveSpan(#23222)okin transaction mode (#22521)beforeSendTransactionandignoreTransactionsand log warnings if used with streaming (#22908)forceTransactionoption inStartSpanOptions(#23821)cache.*span names (#23830)sentry.opattribute to samplers (#23354)callback_errorclient reports for throwing user callbacks (#23903)getActiveSpaninstead of_getSpanFromScopefor logs & metrics (#23223)maxRequestBodySizeto capture HTTP bodies (#22912)function.gcpspan names (#24060).query()handlers (#23283)code.function.nameattribute tofunctionspans for description inference (#24305)functionspan names (#24319)functionspan names for server components (#24333)use cachefunctions (#24302)eveConversationHook()to link eve sessions as Sentry conversations (#24247)getInstrumentedModuleNames()(#24254)expressIntegration(#23464)ignoreStatusCodesin http integrations (#23973)nuxt devon Nitro v3 (Nuxt 5) (#23644)@sentry/react/react-routerentry with automatic React Router hooks (#24014)functionspan names (#24323)dbspan op for generic-pool acquire spans (#23213)otlpIntegrationto connect Sentry to an existing OpenTelemetry setup (#23099)prime,clearandclearAll(#23212)function.gcpspan names for firebase functions (#24069)setAsyncLocalStorageAsyncContextStrategy(#22889)code.function.nameattribute to solid-startfunctionspans (#24316)functionspans (#24341)dataCollection.userInfofortrackClientIp(#24091)timeOrigin(#23502)dataCollection.httpHeaders.requestinhttpContextIntegration(#23025)onFCPand rebase FP againstactivationStart(#23032)runtimeoption (#24487)node:httpinbunHttpServerIntegration(#24584)faas.queueop on queue consumer spans (#22664)dataCollection.urlQueryParamstourl.fullandurl.query(#23061)beforeSendSpancallback throws (#22836)url.fullon request data and navigate errors (#23143)supabaseIntegrationfrom ending spans twice (#24126)function(#24263)routerService.recognize()against unrecognizable URLs (#24120)silentto the SDK's own build logs (#23621)tracesSamplerfor edge middleware root spans (#22232)[lng]locale routes and prefer narrower routes over catch-alls (#23520)NodeClientcon… (#24293)#imports/serverinaddMiddlewareImports()(#24150)moduleSideEffectsin Nuxt 5 / Nitro 3 (#24309)Changelog truncated for issue body.