Skip to content

feat(nitro): Merge the nitro integrations into a single nitroIntegration - #25349

Merged
mydea merged 2 commits into
feat/nitro-move-to-server-utilsfrom
feat/nitro-single-integration
Oct 19, 2026
Merged

mydea merged 2 commits into
feat/nitro-move-to-server-utilsfrom
feat/nitro-single-integration

Conversation

@mydea

@mydea mydea commented Oct 14, 2026

Copy link
Copy Markdown
Member

Stacked on #24861. Replaces #24897.

nitroServerTimingIntegration only existed as a separate integration because nitroIntegration was tracing-gated, while Server-Timing trace propagation must work in tracing-without-performance mode. That split meant Cloudflare auto-injection needed a second anchor module (unstorage), since a module registers a single integration, and a Nitro app that never loaded unstorage would silently lose the headers. #24897 tried to fix that by letting one module register several integrations, which complicated the global marker shape.

Instead, there is now a single nitroIntegration with options to opt out of parts of it, both enabled by default:

nitroIntegration({
  serverTiming: false, // no Server-Timing sentry-trace/baggage headers
  storage: false, // no unstorage cache spans
});

It's registered as a default integration rather than a tracing one, like express/hono/koa: without tracing, the spans it starts are non-recording, and the Server-Timing headers still propagate. It's anchored on h3 alone, which every HTTP-serving Nitro app loads, so the marker keeps its single-factory shape.

🤖 Generated with Claude Code

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit fdf4d4b. Configure here.

Comment thread dev-packages/node-integration-tests/suites/tracing/nitro/test.ts Outdated
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 29.88 kB - -
@sentry/browser - with treeshaking flags 28.02 kB - -
@sentry/browser - with treeshaking flags tracing without tracing 27.92 kB - -
@sentry/browser (incl. Tracing) 52.07 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 52.07 kB - -
@sentry/browser (incl. Tracing, Profiling) 55.02 kB - -
@sentry/browser (incl. Tracing, Replay) 91.82 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 80.68 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 96.55 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 109.49 kB - -
@sentry/browser (incl. Feedback) 47.4 kB - -
@sentry/browser (incl. sendFeedback) 34.94 kB - -
@sentry/browser (incl. FeedbackAsync) 40.05 kB - -
@sentry/browser (incl. Metrics) 30.9 kB - -
@sentry/browser (incl. Logs) 31.18 kB - -
@sentry/browser (incl. Metrics & Logs) 31.81 kB - -
@sentry/react 31.7 kB - -
@sentry/react (incl. Tracing) 54.39 kB - -
@sentry/vue 38.04 kB - -
@sentry/vue (incl. Tracing) 55.01 kB - -
@sentry/svelte 29.9 kB - -
@sentry/remix (Remix 3 client bundle) 57.08 kB - -
CDN Bundle 31.64 kB - -
CDN Bundle (incl. Tracing) 52.58 kB - -
CDN Bundle (incl. Logs, Metrics) 33.84 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 54.52 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 74.77 kB - -
CDN Bundle (incl. Tracing, Replay) 90.25 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 92.18 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 96.4 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 98.34 kB - -
CDN Bundle - uncompressed 93.18 kB - -
CDN Bundle (incl. Tracing) - uncompressed 156.03 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 99.72 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 161.99 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 229.76 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 276.2 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 282.14 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 289.9 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 295.84 kB - -
@sentry/nextjs (client) 56.8 kB - -
@sentry/sveltekit (client) 52.45 kB - -
@sentry/core/server 41.12 kB - -
@sentry/core/browser 13.81 kB - -
@sentry/node 154.78 kB +1.12% +1.7 kB 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection) 84.06 kB +0.03% +17 B 🔺
@sentry/node - without tracing 96.59 kB +1.82% +1.72 kB 🔺
@sentry/node - without channel injection 132.82 kB +1.28% +1.68 kB 🔺
@sentry/aws-serverless 104.79 kB +1.71% +1.76 kB 🔺
@sentry/cloudflare (withSentry) - minified 210.6 kB - -
@sentry/cloudflare (withSentry) 522.53 kB - -
@sentry/nextjs/cloudflare (withSentry) - minified 228.27 kB - -

View base workflow run

@mydea
mydea force-pushed the feat/nitro-single-integration branch from fdf4d4b to dece0fa Compare October 14, 2026 07:43
@mydea
mydea marked this pull request as ready for review October 14, 2026 07:49
@mydea
mydea requested review from a team as code owners October 14, 2026 07:49
@mydea
mydea requested review from andreiborza, isaacs, logaretm, nicohrubec and s1gr1d and removed request for a team October 14, 2026 07:49
@mydea
mydea force-pushed the feat/nitro-single-integration branch from dece0fa to 47f97c8 Compare October 16, 2026 06:57
mydea and others added 2 commits October 19, 2026 09:57
…tion`

Server-Timing headers were split into a separate default integration because
`nitroIntegration` was tracing-gated, while trace propagation must work in
tracing-without-performance mode. That split forced a second orchestrion
anchor (`unstorage`) for Cloudflare auto-injection, since a module registers a
single integration.

Register one `nitroIntegration` as a default integration instead (like
express/hono/koa, its spans are non-recording without tracing) with
`serverTiming` and `storage` options, both enabled by default, to opt out of
the Server-Timing headers or the unstorage cache spans. It is anchored on `h3`
alone, which every HTTP-serving Nitro app loads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mydea
mydea force-pushed the feat/nitro-single-integration branch from 47f97c8 to 2cdaa81 Compare October 19, 2026 07:58
@mydea
mydea merged commit 3430af5 into develop Oct 19, 2026
295 of 324 checks passed
@mydea
mydea deleted the feat/nitro-single-integration branch October 19, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants