feat(node)!: Remove init, preload entry points and preloadOpenTelemetry - #23074

Merged
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports
Aug 6, 2026
Merged

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry#23074
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports

Conversation

@andreiborza

@andreiborzaandreiborza commented Aug 5, 2026

Copy link
Copy Markdown
Member

What

Remove the following from @sentry/node, part of the v11 major:

  • The @sentry/node/init and @sentry/node/preload no-code entry points.
  • The preloadOpenTelemetry() function.
  • The node-express-{cjs,esm}-preload e2e apps and the no-code integration suite that tested them.

Also repurposes the express/late-init integration suite (renamed to express/ignore-layers-type) into a focused ignoreLayersType test.

Why

All instrumentation is channel-based via orchestrion and is set up when the instrumented module loads, so preloading no longer does anything. preloadOpenTelemetry() could only ever preload the Sentry HTTP breadcrumb/propagation instrument, which normal init() already sets up, so it had quietly stopped doing its advertised job.

The issue proposed deprecating init/preload, but since develop is the v11 line a deprecation cycle buys nothing, so these are removed outright. @sentry/node/import stays as the one supported hook. @sentry/node/loader and @sentry/node/auto-diagnostic-channels from the issue are already moot: /loader was removed with the iitm cleanup, and /import already is the orchestrion diagnostics-channel hook that /auto-diagnostic-channels was meant to become.

The late-init suite existed to guard lazy Express option loading via a later init(), a mechanism that now lives only in @sentry/core's patchLayer (Deno-only, unit-tested) and is unreachable in node under orchestrion. It was also the only node e2e test exercising ignoreLayersType, so it is kept and refocused on that option rather than deleted.

Closes: #21483

@andreiborza

andreiborza commented Aug 5, 2026

Copy link
Copy Markdown
MemberAuthor

buglitzer moch

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser30.12 kB--
@sentry/browser - with treeshaking flags28.32 kB--
@sentry/browser (incl. Tracing)47.53 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.54 kB--
@sentry/browser (incl. Tracing, Profiling)52.29 kB--
@sentry/browser (incl. Tracing, Replay)86.91 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags76.33 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.6 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)104.25 kB--
@sentry/browser (incl. Feedback)47.45 kB--
@sentry/browser (incl. sendFeedback)34.96 kB--
@sentry/browser (incl. FeedbackAsync)40.1 kB--
@sentry/browser (incl. Metrics)31.2 kB--
@sentry/browser (incl. Logs)31.41 kB--
@sentry/browser (incl. Metrics & Logs)32.11 kB--
@sentry/react31.93 kB--
@sentry/react (incl. Tracing)49.79 kB--
@sentry/vue35.2 kB--
@sentry/vue (incl. Tracing)49.51 kB--
@sentry/svelte30.14 kB--
CDN Bundle32.13 kB--
CDN Bundle (incl. Tracing)47.81 kB--
CDN Bundle (incl. Logs, Metrics)33.67 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.19 kB--
CDN Bundle (incl. Replay, Logs, Metrics)73.02 kB--
CDN Bundle (incl. Tracing, Replay)85.45 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.77 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.27 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.59 kB--
CDN Bundle - uncompressed95.27 kB--
CDN Bundle (incl. Tracing) - uncompressed142.78 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed99.9 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.75 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.6 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed262.03 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed266 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.74 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.69 kB--
@sentry/nextjs (client)52.36 kB--
@sentry/sveltekit (client)47.99 kB--
@sentry/core/server65.54 kB--
@sentry/core/browser51.82 kB--
@sentry/node120.44 kB-0.02%-18 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing84.09 kB-0.03%-24 B 🔽
@sentry/aws-serverless92.59 kB-0.02%-14 B 🔽
@sentry/cloudflare (withSentry) - minified217.81 kB--
@sentry/cloudflare (withSentry)537.06 kB--

View base workflow run

@cursorcursorBot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 56dbdfd. Configure here.

@andreiborza
andreiborza marked this pull request as ready for review August 5, 2026 18:06
@andreiborza
andreiborza requested review from a team as code ownersAugust 5, 2026 18:06
@andreiborza
andreiborza requested review from JPeer264, Lms24, chargome, mydea and nicohrubec and removed request for a team and mydeaAugust 5, 2026 18:06
…lemetry`
Removes the `@sentry/node/init` and `@sentry/node/preload` no-code entry
points and the `preloadOpenTelemetry()` function. All instrumentation is
channel-based via orchestrion and set up when the instrumented module loads,
so preloading no longer does anything.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andreiborza
andreiborzaforce-pushed the ab/clean-up-node-submodule-exports branch from 56dbdfd to 58d24feCompareAugust 5, 2026 18:11

@Lms24Lms24 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

side-note, absolutely not relevant for this PR: ignoreLayersType is very cryptic to understand for users. Most express users likely don't even know what a layer is. Should we think about a more human-friendly option here? Ignoring middleware spans is something people want to do. ignoreSpans covers this use case universally but since we have the option on integration level, it can be used more precisely and probably reduce perf overhead for perf-conscious users.

... this also made me realize we don't document the express integration 😅 and this option is only documented for Koa

@andreiborza

Copy link
Copy Markdown
MemberAuthor

@Lms24 right, we don't have documentations for any of the vendored instrumentations. Def some work to do there.

@andreiborza
andreiborza merged commit 288bbb6 into developAug 6, 2026
271 checks passed
@andreiborza
andreiborza deleted the ab/clean-up-node-submodule-exports branch August 6, 2026 08:21
andreiborza added a commit that referenced this pull request Sep 2, 2026
## What
Adds a `node-otel-sdk-node` e2e app for the setup where OpenTelemetry
owns tracing: the user's own `@opentelemetry/sdk-node` with Sentry
tracing off and `otlpIntegration()`. It runs as ESM so
import-in-the-middle and orchestrion are exercised together. The
migration guide now presents that setup as requiring Sentry tracing off,
instead of offering Sentry spans alongside your own.
## Why
The bring-your-own-OpenTelemetry apps named in the issue were removed
together with the paths they tested (`SentrySpanProcessor` in #22557,
the preload entry point in #23074), so nothing covered a user owned
OpenTelemetry SDK any more.
Closes: #22645
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for freeto 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.

clean up @sentry/node submodule exports

3 participants

@andreiborza@Lms24@nicohrubec
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry - #23074

Merged
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports
Aug 6, 2026
Merged

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry#23074
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports

Conversation

@andreiborza

@andreiborzaandreiborza commented Aug 5, 2026

Copy link
Copy Markdown
Member

What

Remove the following from @sentry/node, part of the v11 major:

  • The @sentry/node/init and @sentry/node/preload no-code entry points.
  • The preloadOpenTelemetry() function.
  • The node-express-{cjs,esm}-preload e2e apps and the no-code integration suite that tested them.

Also repurposes the express/late-init integration suite (renamed to express/ignore-layers-type) into a focused ignoreLayersType test.

Why

All instrumentation is channel-based via orchestrion and is set up when the instrumented module loads, so preloading no longer does anything. preloadOpenTelemetry() could only ever preload the Sentry HTTP breadcrumb/propagation instrument, which normal init() already sets up, so it had quietly stopped doing its advertised job.

The issue proposed deprecating init/preload, but since develop is the v11 line a deprecation cycle buys nothing, so these are removed outright. @sentry/node/import stays as the one supported hook. @sentry/node/loader and @sentry/node/auto-diagnostic-channels from the issue are already moot: /loader was removed with the iitm cleanup, and /import already is the orchestrion diagnostics-channel hook that /auto-diagnostic-channels was meant to become.

The late-init suite existed to guard lazy Express option loading via a later init(), a mechanism that now lives only in @sentry/core's patchLayer (Deno-only, unit-tested) and is unreachable in node under orchestrion. It was also the only node e2e test exercising ignoreLayersType, so it is kept and refocused on that option rather than deleted.

Closes: #21483

@andreiborza

andreiborza commented Aug 5, 2026

Copy link
Copy Markdown
MemberAuthor

buglitzer moch

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser30.12 kB--
@sentry/browser - with treeshaking flags28.32 kB--
@sentry/browser (incl. Tracing)47.53 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.54 kB--
@sentry/browser (incl. Tracing, Profiling)52.29 kB--
@sentry/browser (incl. Tracing, Replay)86.91 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags76.33 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.6 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)104.25 kB--
@sentry/browser (incl. Feedback)47.45 kB--
@sentry/browser (incl. sendFeedback)34.96 kB--
@sentry/browser (incl. FeedbackAsync)40.1 kB--
@sentry/browser (incl. Metrics)31.2 kB--
@sentry/browser (incl. Logs)31.41 kB--
@sentry/browser (incl. Metrics & Logs)32.11 kB--
@sentry/react31.93 kB--
@sentry/react (incl. Tracing)49.79 kB--
@sentry/vue35.2 kB--
@sentry/vue (incl. Tracing)49.51 kB--
@sentry/svelte30.14 kB--
CDN Bundle32.13 kB--
CDN Bundle (incl. Tracing)47.81 kB--
CDN Bundle (incl. Logs, Metrics)33.67 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.19 kB--
CDN Bundle (incl. Replay, Logs, Metrics)73.02 kB--
CDN Bundle (incl. Tracing, Replay)85.45 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.77 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.27 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.59 kB--
CDN Bundle - uncompressed95.27 kB--
CDN Bundle (incl. Tracing) - uncompressed142.78 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed99.9 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.75 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.6 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed262.03 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed266 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.74 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.69 kB--
@sentry/nextjs (client)52.36 kB--
@sentry/sveltekit (client)47.99 kB--
@sentry/core/server65.54 kB--
@sentry/core/browser51.82 kB--
@sentry/node120.44 kB-0.02%-18 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing84.09 kB-0.03%-24 B 🔽
@sentry/aws-serverless92.59 kB-0.02%-14 B 🔽
@sentry/cloudflare (withSentry) - minified217.81 kB--
@sentry/cloudflare (withSentry)537.06 kB--

View base workflow run

@cursorcursorBot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 56dbdfd. Configure here.

@andreiborza
andreiborza marked this pull request as ready for review August 5, 2026 18:06
@andreiborza
andreiborza requested review from a team as code ownersAugust 5, 2026 18:06
@andreiborza
andreiborza requested review from JPeer264, Lms24, chargome, mydea and nicohrubec and removed request for a team and mydeaAugust 5, 2026 18:06
…lemetry`
Removes the `@sentry/node/init` and `@sentry/node/preload` no-code entry
points and the `preloadOpenTelemetry()` function. All instrumentation is
channel-based via orchestrion and set up when the instrumented module loads,
so preloading no longer does anything.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andreiborza
andreiborzaforce-pushed the ab/clean-up-node-submodule-exports branch from 56dbdfd to 58d24feCompareAugust 5, 2026 18:11

@Lms24Lms24 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

side-note, absolutely not relevant for this PR: ignoreLayersType is very cryptic to understand for users. Most express users likely don't even know what a layer is. Should we think about a more human-friendly option here? Ignoring middleware spans is something people want to do. ignoreSpans covers this use case universally but since we have the option on integration level, it can be used more precisely and probably reduce perf overhead for perf-conscious users.

... this also made me realize we don't document the express integration 😅 and this option is only documented for Koa

@andreiborza

Copy link
Copy Markdown
MemberAuthor

@Lms24 right, we don't have documentations for any of the vendored instrumentations. Def some work to do there.

@andreiborza
andreiborza merged commit 288bbb6 into developAug 6, 2026
271 checks passed
@andreiborza
andreiborza deleted the ab/clean-up-node-submodule-exports branch August 6, 2026 08:21
andreiborza added a commit that referenced this pull request Sep 2, 2026
## What
Adds a `node-otel-sdk-node` e2e app for the setup where OpenTelemetry
owns tracing: the user's own `@opentelemetry/sdk-node` with Sentry
tracing off and `otlpIntegration()`. It runs as ESM so
import-in-the-middle and orchestrion are exercised together. The
migration guide now presents that setup as requiring Sentry tracing off,
instead of offering Sentry spans alongside your own.
## Why
The bring-your-own-OpenTelemetry apps named in the issue were removed
together with the paths they tested (`SentrySpanProcessor` in #22557,
the preload entry point in #23074), so nothing covered a user owned
OpenTelemetry SDK any more.
Closes: #22645
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for freeto 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.

clean up @sentry/node submodule exports

3 participants

@andreiborza@Lms24@nicohrubec
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry - #23074

Merged
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports
Aug 6, 2026
Merged

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry#23074
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports

Conversation

@andreiborza

@andreiborzaandreiborza commented Aug 5, 2026

Copy link
Copy Markdown
Member

What

Remove the following from @sentry/node, part of the v11 major:

  • The @sentry/node/init and @sentry/node/preload no-code entry points.
  • The preloadOpenTelemetry() function.
  • The node-express-{cjs,esm}-preload e2e apps and the no-code integration suite that tested them.

Also repurposes the express/late-init integration suite (renamed to express/ignore-layers-type) into a focused ignoreLayersType test.

Why

All instrumentation is channel-based via orchestrion and is set up when the instrumented module loads, so preloading no longer does anything. preloadOpenTelemetry() could only ever preload the Sentry HTTP breadcrumb/propagation instrument, which normal init() already sets up, so it had quietly stopped doing its advertised job.

The issue proposed deprecating init/preload, but since develop is the v11 line a deprecation cycle buys nothing, so these are removed outright. @sentry/node/import stays as the one supported hook. @sentry/node/loader and @sentry/node/auto-diagnostic-channels from the issue are already moot: /loader was removed with the iitm cleanup, and /import already is the orchestrion diagnostics-channel hook that /auto-diagnostic-channels was meant to become.

The late-init suite existed to guard lazy Express option loading via a later init(), a mechanism that now lives only in @sentry/core's patchLayer (Deno-only, unit-tested) and is unreachable in node under orchestrion. It was also the only node e2e test exercising ignoreLayersType, so it is kept and refocused on that option rather than deleted.

Closes: #21483

@andreiborza

andreiborza commented Aug 5, 2026

Copy link
Copy Markdown
MemberAuthor

buglitzer moch

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser30.12 kB--
@sentry/browser - with treeshaking flags28.32 kB--
@sentry/browser (incl. Tracing)47.53 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.54 kB--
@sentry/browser (incl. Tracing, Profiling)52.29 kB--
@sentry/browser (incl. Tracing, Replay)86.91 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags76.33 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.6 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)104.25 kB--
@sentry/browser (incl. Feedback)47.45 kB--
@sentry/browser (incl. sendFeedback)34.96 kB--
@sentry/browser (incl. FeedbackAsync)40.1 kB--
@sentry/browser (incl. Metrics)31.2 kB--
@sentry/browser (incl. Logs)31.41 kB--
@sentry/browser (incl. Metrics & Logs)32.11 kB--
@sentry/react31.93 kB--
@sentry/react (incl. Tracing)49.79 kB--
@sentry/vue35.2 kB--
@sentry/vue (incl. Tracing)49.51 kB--
@sentry/svelte30.14 kB--
CDN Bundle32.13 kB--
CDN Bundle (incl. Tracing)47.81 kB--
CDN Bundle (incl. Logs, Metrics)33.67 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.19 kB--
CDN Bundle (incl. Replay, Logs, Metrics)73.02 kB--
CDN Bundle (incl. Tracing, Replay)85.45 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.77 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.27 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.59 kB--
CDN Bundle - uncompressed95.27 kB--
CDN Bundle (incl. Tracing) - uncompressed142.78 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed99.9 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.75 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.6 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed262.03 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed266 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.74 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.69 kB--
@sentry/nextjs (client)52.36 kB--
@sentry/sveltekit (client)47.99 kB--
@sentry/core/server65.54 kB--
@sentry/core/browser51.82 kB--
@sentry/node120.44 kB-0.02%-18 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing84.09 kB-0.03%-24 B 🔽
@sentry/aws-serverless92.59 kB-0.02%-14 B 🔽
@sentry/cloudflare (withSentry) - minified217.81 kB--
@sentry/cloudflare (withSentry)537.06 kB--

View base workflow run

@cursorcursorBot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 56dbdfd. Configure here.

@andreiborza
andreiborza marked this pull request as ready for review August 5, 2026 18:06
@andreiborza
andreiborza requested review from a team as code ownersAugust 5, 2026 18:06
@andreiborza
andreiborza requested review from JPeer264, Lms24, chargome, mydea and nicohrubec and removed request for a team and mydeaAugust 5, 2026 18:06
…lemetry`
Removes the `@sentry/node/init` and `@sentry/node/preload` no-code entry
points and the `preloadOpenTelemetry()` function. All instrumentation is
channel-based via orchestrion and set up when the instrumented module loads,
so preloading no longer does anything.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andreiborza
andreiborzaforce-pushed the ab/clean-up-node-submodule-exports branch from 56dbdfd to 58d24feCompareAugust 5, 2026 18:11

@Lms24Lms24 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

side-note, absolutely not relevant for this PR: ignoreLayersType is very cryptic to understand for users. Most express users likely don't even know what a layer is. Should we think about a more human-friendly option here? Ignoring middleware spans is something people want to do. ignoreSpans covers this use case universally but since we have the option on integration level, it can be used more precisely and probably reduce perf overhead for perf-conscious users.

... this also made me realize we don't document the express integration 😅 and this option is only documented for Koa

@andreiborza

Copy link
Copy Markdown
MemberAuthor

@Lms24 right, we don't have documentations for any of the vendored instrumentations. Def some work to do there.

@andreiborza
andreiborza merged commit 288bbb6 into developAug 6, 2026
271 checks passed
@andreiborza
andreiborza deleted the ab/clean-up-node-submodule-exports branch August 6, 2026 08:21
andreiborza added a commit that referenced this pull request Sep 2, 2026
## What
Adds a `node-otel-sdk-node` e2e app for the setup where OpenTelemetry
owns tracing: the user's own `@opentelemetry/sdk-node` with Sentry
tracing off and `otlpIntegration()`. It runs as ESM so
import-in-the-middle and orchestrion are exercised together. The
migration guide now presents that setup as requiring Sentry tracing off,
instead of offering Sentry spans alongside your own.
## Why
The bring-your-own-OpenTelemetry apps named in the issue were removed
together with the paths they tested (`SentrySpanProcessor` in #22557,
the preload entry point in #23074), so nothing covered a user owned
OpenTelemetry SDK any more.
Closes: #22645
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for freeto 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.

clean up @sentry/node submodule exports

3 participants

@andreiborza@Lms24@nicohrubec
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry - #23074

Merged
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports
Aug 6, 2026
Merged

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry#23074
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports

Conversation

@andreiborza

@andreiborzaandreiborza commented Aug 5, 2026

Copy link
Copy Markdown
Member

What

Remove the following from @sentry/node, part of the v11 major:

  • The @sentry/node/init and @sentry/node/preload no-code entry points.
  • The preloadOpenTelemetry() function.
  • The node-express-{cjs,esm}-preload e2e apps and the no-code integration suite that tested them.

Also repurposes the express/late-init integration suite (renamed to express/ignore-layers-type) into a focused ignoreLayersType test.

Why

All instrumentation is channel-based via orchestrion and is set up when the instrumented module loads, so preloading no longer does anything. preloadOpenTelemetry() could only ever preload the Sentry HTTP breadcrumb/propagation instrument, which normal init() already sets up, so it had quietly stopped doing its advertised job.

The issue proposed deprecating init/preload, but since develop is the v11 line a deprecation cycle buys nothing, so these are removed outright. @sentry/node/import stays as the one supported hook. @sentry/node/loader and @sentry/node/auto-diagnostic-channels from the issue are already moot: /loader was removed with the iitm cleanup, and /import already is the orchestrion diagnostics-channel hook that /auto-diagnostic-channels was meant to become.

The late-init suite existed to guard lazy Express option loading via a later init(), a mechanism that now lives only in @sentry/core's patchLayer (Deno-only, unit-tested) and is unreachable in node under orchestrion. It was also the only node e2e test exercising ignoreLayersType, so it is kept and refocused on that option rather than deleted.

Closes: #21483

@andreiborza

andreiborza commented Aug 5, 2026

Copy link
Copy Markdown
MemberAuthor

buglitzer moch

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser30.12 kB--
@sentry/browser - with treeshaking flags28.32 kB--
@sentry/browser (incl. Tracing)47.53 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.54 kB--
@sentry/browser (incl. Tracing, Profiling)52.29 kB--
@sentry/browser (incl. Tracing, Replay)86.91 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags76.33 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.6 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)104.25 kB--
@sentry/browser (incl. Feedback)47.45 kB--
@sentry/browser (incl. sendFeedback)34.96 kB--
@sentry/browser (incl. FeedbackAsync)40.1 kB--
@sentry/browser (incl. Metrics)31.2 kB--
@sentry/browser (incl. Logs)31.41 kB--
@sentry/browser (incl. Metrics & Logs)32.11 kB--
@sentry/react31.93 kB--
@sentry/react (incl. Tracing)49.79 kB--
@sentry/vue35.2 kB--
@sentry/vue (incl. Tracing)49.51 kB--
@sentry/svelte30.14 kB--
CDN Bundle32.13 kB--
CDN Bundle (incl. Tracing)47.81 kB--
CDN Bundle (incl. Logs, Metrics)33.67 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.19 kB--
CDN Bundle (incl. Replay, Logs, Metrics)73.02 kB--
CDN Bundle (incl. Tracing, Replay)85.45 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.77 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.27 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.59 kB--
CDN Bundle - uncompressed95.27 kB--
CDN Bundle (incl. Tracing) - uncompressed142.78 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed99.9 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.75 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.6 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed262.03 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed266 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.74 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.69 kB--
@sentry/nextjs (client)52.36 kB--
@sentry/sveltekit (client)47.99 kB--
@sentry/core/server65.54 kB--
@sentry/core/browser51.82 kB--
@sentry/node120.44 kB-0.02%-18 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing84.09 kB-0.03%-24 B 🔽
@sentry/aws-serverless92.59 kB-0.02%-14 B 🔽
@sentry/cloudflare (withSentry) - minified217.81 kB--
@sentry/cloudflare (withSentry)537.06 kB--

View base workflow run

@cursorcursorBot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 56dbdfd. Configure here.

@andreiborza
andreiborza marked this pull request as ready for review August 5, 2026 18:06
@andreiborza
andreiborza requested review from a team as code ownersAugust 5, 2026 18:06
@andreiborza
andreiborza requested review from JPeer264, Lms24, chargome, mydea and nicohrubec and removed request for a team and mydeaAugust 5, 2026 18:06
…lemetry`
Removes the `@sentry/node/init` and `@sentry/node/preload` no-code entry
points and the `preloadOpenTelemetry()` function. All instrumentation is
channel-based via orchestrion and set up when the instrumented module loads,
so preloading no longer does anything.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andreiborza
andreiborzaforce-pushed the ab/clean-up-node-submodule-exports branch from 56dbdfd to 58d24feCompareAugust 5, 2026 18:11

@Lms24Lms24 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

side-note, absolutely not relevant for this PR: ignoreLayersType is very cryptic to understand for users. Most express users likely don't even know what a layer is. Should we think about a more human-friendly option here? Ignoring middleware spans is something people want to do. ignoreSpans covers this use case universally but since we have the option on integration level, it can be used more precisely and probably reduce perf overhead for perf-conscious users.

... this also made me realize we don't document the express integration 😅 and this option is only documented for Koa

@andreiborza

Copy link
Copy Markdown
MemberAuthor

@Lms24 right, we don't have documentations for any of the vendored instrumentations. Def some work to do there.

@andreiborza
andreiborza merged commit 288bbb6 into developAug 6, 2026
271 checks passed
@andreiborza
andreiborza deleted the ab/clean-up-node-submodule-exports branch August 6, 2026 08:21
andreiborza added a commit that referenced this pull request Sep 2, 2026
## What
Adds a `node-otel-sdk-node` e2e app for the setup where OpenTelemetry
owns tracing: the user's own `@opentelemetry/sdk-node` with Sentry
tracing off and `otlpIntegration()`. It runs as ESM so
import-in-the-middle and orchestrion are exercised together. The
migration guide now presents that setup as requiring Sentry tracing off,
instead of offering Sentry spans alongside your own.
## Why
The bring-your-own-OpenTelemetry apps named in the issue were removed
together with the paths they tested (`SentrySpanProcessor` in #22557,
the preload entry point in #23074), so nothing covered a user owned
OpenTelemetry SDK any more.
Closes: #22645
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for freeto 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.

clean up @sentry/node submodule exports

3 participants

@andreiborza@Lms24@nicohrubec
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry - #23074

Merged
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports
Aug 6, 2026
Merged

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry#23074
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports

Conversation

@andreiborza

@andreiborzaandreiborza commented Aug 5, 2026

Copy link
Copy Markdown
Member

What

Remove the following from @sentry/node, part of the v11 major:

  • The @sentry/node/init and @sentry/node/preload no-code entry points.
  • The preloadOpenTelemetry() function.
  • The node-express-{cjs,esm}-preload e2e apps and the no-code integration suite that tested them.

Also repurposes the express/late-init integration suite (renamed to express/ignore-layers-type) into a focused ignoreLayersType test.

Why

All instrumentation is channel-based via orchestrion and is set up when the instrumented module loads, so preloading no longer does anything. preloadOpenTelemetry() could only ever preload the Sentry HTTP breadcrumb/propagation instrument, which normal init() already sets up, so it had quietly stopped doing its advertised job.

The issue proposed deprecating init/preload, but since develop is the v11 line a deprecation cycle buys nothing, so these are removed outright. @sentry/node/import stays as the one supported hook. @sentry/node/loader and @sentry/node/auto-diagnostic-channels from the issue are already moot: /loader was removed with the iitm cleanup, and /import already is the orchestrion diagnostics-channel hook that /auto-diagnostic-channels was meant to become.

The late-init suite existed to guard lazy Express option loading via a later init(), a mechanism that now lives only in @sentry/core's patchLayer (Deno-only, unit-tested) and is unreachable in node under orchestrion. It was also the only node e2e test exercising ignoreLayersType, so it is kept and refocused on that option rather than deleted.

Closes: #21483

@andreiborza

andreiborza commented Aug 5, 2026

Copy link
Copy Markdown
MemberAuthor

buglitzer moch

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser30.12 kB--
@sentry/browser - with treeshaking flags28.32 kB--
@sentry/browser (incl. Tracing)47.53 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.54 kB--
@sentry/browser (incl. Tracing, Profiling)52.29 kB--
@sentry/browser (incl. Tracing, Replay)86.91 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags76.33 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.6 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)104.25 kB--
@sentry/browser (incl. Feedback)47.45 kB--
@sentry/browser (incl. sendFeedback)34.96 kB--
@sentry/browser (incl. FeedbackAsync)40.1 kB--
@sentry/browser (incl. Metrics)31.2 kB--
@sentry/browser (incl. Logs)31.41 kB--
@sentry/browser (incl. Metrics & Logs)32.11 kB--
@sentry/react31.93 kB--
@sentry/react (incl. Tracing)49.79 kB--
@sentry/vue35.2 kB--
@sentry/vue (incl. Tracing)49.51 kB--
@sentry/svelte30.14 kB--
CDN Bundle32.13 kB--
CDN Bundle (incl. Tracing)47.81 kB--
CDN Bundle (incl. Logs, Metrics)33.67 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.19 kB--
CDN Bundle (incl. Replay, Logs, Metrics)73.02 kB--
CDN Bundle (incl. Tracing, Replay)85.45 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.77 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.27 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.59 kB--
CDN Bundle - uncompressed95.27 kB--
CDN Bundle (incl. Tracing) - uncompressed142.78 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed99.9 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.75 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.6 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed262.03 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed266 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.74 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.69 kB--
@sentry/nextjs (client)52.36 kB--
@sentry/sveltekit (client)47.99 kB--
@sentry/core/server65.54 kB--
@sentry/core/browser51.82 kB--
@sentry/node120.44 kB-0.02%-18 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing84.09 kB-0.03%-24 B 🔽
@sentry/aws-serverless92.59 kB-0.02%-14 B 🔽
@sentry/cloudflare (withSentry) - minified217.81 kB--
@sentry/cloudflare (withSentry)537.06 kB--

View base workflow run

@cursorcursorBot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 56dbdfd. Configure here.

@andreiborza
andreiborza marked this pull request as ready for review August 5, 2026 18:06
@andreiborza
andreiborza requested review from a team as code ownersAugust 5, 2026 18:06
@andreiborza
andreiborza requested review from JPeer264, Lms24, chargome, mydea and nicohrubec and removed request for a team and mydeaAugust 5, 2026 18:06
…lemetry`
Removes the `@sentry/node/init` and `@sentry/node/preload` no-code entry
points and the `preloadOpenTelemetry()` function. All instrumentation is
channel-based via orchestrion and set up when the instrumented module loads,
so preloading no longer does anything.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andreiborza
andreiborzaforce-pushed the ab/clean-up-node-submodule-exports branch from 56dbdfd to 58d24feCompareAugust 5, 2026 18:11

@Lms24Lms24 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

side-note, absolutely not relevant for this PR: ignoreLayersType is very cryptic to understand for users. Most express users likely don't even know what a layer is. Should we think about a more human-friendly option here? Ignoring middleware spans is something people want to do. ignoreSpans covers this use case universally but since we have the option on integration level, it can be used more precisely and probably reduce perf overhead for perf-conscious users.

... this also made me realize we don't document the express integration 😅 and this option is only documented for Koa

@andreiborza

Copy link
Copy Markdown
MemberAuthor

@Lms24 right, we don't have documentations for any of the vendored instrumentations. Def some work to do there.

@andreiborza
andreiborza merged commit 288bbb6 into developAug 6, 2026
271 checks passed
@andreiborza
andreiborza deleted the ab/clean-up-node-submodule-exports branch August 6, 2026 08:21
andreiborza added a commit that referenced this pull request Sep 2, 2026
## What
Adds a `node-otel-sdk-node` e2e app for the setup where OpenTelemetry
owns tracing: the user's own `@opentelemetry/sdk-node` with Sentry
tracing off and `otlpIntegration()`. It runs as ESM so
import-in-the-middle and orchestrion are exercised together. The
migration guide now presents that setup as requiring Sentry tracing off,
instead of offering Sentry spans alongside your own.
## Why
The bring-your-own-OpenTelemetry apps named in the issue were removed
together with the paths they tested (`SentrySpanProcessor` in #22557,
the preload entry point in #23074), so nothing covered a user owned
OpenTelemetry SDK any more.
Closes: #22645
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for freeto 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.

clean up @sentry/node submodule exports

3 participants

@andreiborza@Lms24@nicohrubec
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry - #23074

Merged
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports
Aug 6, 2026
Merged

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry#23074
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports

Conversation

@andreiborza

@andreiborzaandreiborza commented Aug 5, 2026

Copy link
Copy Markdown
Member

What

Remove the following from @sentry/node, part of the v11 major:

  • The @sentry/node/init and @sentry/node/preload no-code entry points.
  • The preloadOpenTelemetry() function.
  • The node-express-{cjs,esm}-preload e2e apps and the no-code integration suite that tested them.

Also repurposes the express/late-init integration suite (renamed to express/ignore-layers-type) into a focused ignoreLayersType test.

Why

All instrumentation is channel-based via orchestrion and is set up when the instrumented module loads, so preloading no longer does anything. preloadOpenTelemetry() could only ever preload the Sentry HTTP breadcrumb/propagation instrument, which normal init() already sets up, so it had quietly stopped doing its advertised job.

The issue proposed deprecating init/preload, but since develop is the v11 line a deprecation cycle buys nothing, so these are removed outright. @sentry/node/import stays as the one supported hook. @sentry/node/loader and @sentry/node/auto-diagnostic-channels from the issue are already moot: /loader was removed with the iitm cleanup, and /import already is the orchestrion diagnostics-channel hook that /auto-diagnostic-channels was meant to become.

The late-init suite existed to guard lazy Express option loading via a later init(), a mechanism that now lives only in @sentry/core's patchLayer (Deno-only, unit-tested) and is unreachable in node under orchestrion. It was also the only node e2e test exercising ignoreLayersType, so it is kept and refocused on that option rather than deleted.

Closes: #21483

@andreiborza

andreiborza commented Aug 5, 2026

Copy link
Copy Markdown
MemberAuthor

buglitzer moch

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser30.12 kB--
@sentry/browser - with treeshaking flags28.32 kB--
@sentry/browser (incl. Tracing)47.53 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.54 kB--
@sentry/browser (incl. Tracing, Profiling)52.29 kB--
@sentry/browser (incl. Tracing, Replay)86.91 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags76.33 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.6 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)104.25 kB--
@sentry/browser (incl. Feedback)47.45 kB--
@sentry/browser (incl. sendFeedback)34.96 kB--
@sentry/browser (incl. FeedbackAsync)40.1 kB--
@sentry/browser (incl. Metrics)31.2 kB--
@sentry/browser (incl. Logs)31.41 kB--
@sentry/browser (incl. Metrics & Logs)32.11 kB--
@sentry/react31.93 kB--
@sentry/react (incl. Tracing)49.79 kB--
@sentry/vue35.2 kB--
@sentry/vue (incl. Tracing)49.51 kB--
@sentry/svelte30.14 kB--
CDN Bundle32.13 kB--
CDN Bundle (incl. Tracing)47.81 kB--
CDN Bundle (incl. Logs, Metrics)33.67 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.19 kB--
CDN Bundle (incl. Replay, Logs, Metrics)73.02 kB--
CDN Bundle (incl. Tracing, Replay)85.45 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.77 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.27 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.59 kB--
CDN Bundle - uncompressed95.27 kB--
CDN Bundle (incl. Tracing) - uncompressed142.78 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed99.9 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.75 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.6 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed262.03 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed266 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.74 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.69 kB--
@sentry/nextjs (client)52.36 kB--
@sentry/sveltekit (client)47.99 kB--
@sentry/core/server65.54 kB--
@sentry/core/browser51.82 kB--
@sentry/node120.44 kB-0.02%-18 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing84.09 kB-0.03%-24 B 🔽
@sentry/aws-serverless92.59 kB-0.02%-14 B 🔽
@sentry/cloudflare (withSentry) - minified217.81 kB--
@sentry/cloudflare (withSentry)537.06 kB--

View base workflow run

@cursorcursorBot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 56dbdfd. Configure here.

@andreiborza
andreiborza marked this pull request as ready for review August 5, 2026 18:06
@andreiborza
andreiborza requested review from a team as code ownersAugust 5, 2026 18:06
@andreiborza
andreiborza requested review from JPeer264, Lms24, chargome, mydea and nicohrubec and removed request for a team and mydeaAugust 5, 2026 18:06
…lemetry`
Removes the `@sentry/node/init` and `@sentry/node/preload` no-code entry
points and the `preloadOpenTelemetry()` function. All instrumentation is
channel-based via orchestrion and set up when the instrumented module loads,
so preloading no longer does anything.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andreiborza
andreiborzaforce-pushed the ab/clean-up-node-submodule-exports branch from 56dbdfd to 58d24feCompareAugust 5, 2026 18:11

@Lms24Lms24 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

side-note, absolutely not relevant for this PR: ignoreLayersType is very cryptic to understand for users. Most express users likely don't even know what a layer is. Should we think about a more human-friendly option here? Ignoring middleware spans is something people want to do. ignoreSpans covers this use case universally but since we have the option on integration level, it can be used more precisely and probably reduce perf overhead for perf-conscious users.

... this also made me realize we don't document the express integration 😅 and this option is only documented for Koa

@andreiborza

Copy link
Copy Markdown
MemberAuthor

@Lms24 right, we don't have documentations for any of the vendored instrumentations. Def some work to do there.

@andreiborza
andreiborza merged commit 288bbb6 into developAug 6, 2026
271 checks passed
@andreiborza
andreiborza deleted the ab/clean-up-node-submodule-exports branch August 6, 2026 08:21
andreiborza added a commit that referenced this pull request Sep 2, 2026
## What
Adds a `node-otel-sdk-node` e2e app for the setup where OpenTelemetry
owns tracing: the user's own `@opentelemetry/sdk-node` with Sentry
tracing off and `otlpIntegration()`. It runs as ESM so
import-in-the-middle and orchestrion are exercised together. The
migration guide now presents that setup as requiring Sentry tracing off,
instead of offering Sentry spans alongside your own.
## Why
The bring-your-own-OpenTelemetry apps named in the issue were removed
together with the paths they tested (`SentrySpanProcessor` in #22557,
the preload entry point in #23074), so nothing covered a user owned
OpenTelemetry SDK any more.
Closes: #22645
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for freeto 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.

clean up @sentry/node submodule exports

3 participants

@andreiborza@Lms24@nicohrubec
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry - #23074

Merged
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports
Aug 6, 2026
Merged

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry#23074
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports

Conversation

@andreiborza

@andreiborzaandreiborza commented Aug 5, 2026

Copy link
Copy Markdown
Member

What

Remove the following from @sentry/node, part of the v11 major:

  • The @sentry/node/init and @sentry/node/preload no-code entry points.
  • The preloadOpenTelemetry() function.
  • The node-express-{cjs,esm}-preload e2e apps and the no-code integration suite that tested them.

Also repurposes the express/late-init integration suite (renamed to express/ignore-layers-type) into a focused ignoreLayersType test.

Why

All instrumentation is channel-based via orchestrion and is set up when the instrumented module loads, so preloading no longer does anything. preloadOpenTelemetry() could only ever preload the Sentry HTTP breadcrumb/propagation instrument, which normal init() already sets up, so it had quietly stopped doing its advertised job.

The issue proposed deprecating init/preload, but since develop is the v11 line a deprecation cycle buys nothing, so these are removed outright. @sentry/node/import stays as the one supported hook. @sentry/node/loader and @sentry/node/auto-diagnostic-channels from the issue are already moot: /loader was removed with the iitm cleanup, and /import already is the orchestrion diagnostics-channel hook that /auto-diagnostic-channels was meant to become.

The late-init suite existed to guard lazy Express option loading via a later init(), a mechanism that now lives only in @sentry/core's patchLayer (Deno-only, unit-tested) and is unreachable in node under orchestrion. It was also the only node e2e test exercising ignoreLayersType, so it is kept and refocused on that option rather than deleted.

Closes: #21483

@andreiborza

andreiborza commented Aug 5, 2026

Copy link
Copy Markdown
MemberAuthor

buglitzer moch

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser30.12 kB--
@sentry/browser - with treeshaking flags28.32 kB--
@sentry/browser (incl. Tracing)47.53 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.54 kB--
@sentry/browser (incl. Tracing, Profiling)52.29 kB--
@sentry/browser (incl. Tracing, Replay)86.91 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags76.33 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.6 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)104.25 kB--
@sentry/browser (incl. Feedback)47.45 kB--
@sentry/browser (incl. sendFeedback)34.96 kB--
@sentry/browser (incl. FeedbackAsync)40.1 kB--
@sentry/browser (incl. Metrics)31.2 kB--
@sentry/browser (incl. Logs)31.41 kB--
@sentry/browser (incl. Metrics & Logs)32.11 kB--
@sentry/react31.93 kB--
@sentry/react (incl. Tracing)49.79 kB--
@sentry/vue35.2 kB--
@sentry/vue (incl. Tracing)49.51 kB--
@sentry/svelte30.14 kB--
CDN Bundle32.13 kB--
CDN Bundle (incl. Tracing)47.81 kB--
CDN Bundle (incl. Logs, Metrics)33.67 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.19 kB--
CDN Bundle (incl. Replay, Logs, Metrics)73.02 kB--
CDN Bundle (incl. Tracing, Replay)85.45 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.77 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.27 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.59 kB--
CDN Bundle - uncompressed95.27 kB--
CDN Bundle (incl. Tracing) - uncompressed142.78 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed99.9 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.75 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.6 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed262.03 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed266 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.74 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.69 kB--
@sentry/nextjs (client)52.36 kB--
@sentry/sveltekit (client)47.99 kB--
@sentry/core/server65.54 kB--
@sentry/core/browser51.82 kB--
@sentry/node120.44 kB-0.02%-18 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing84.09 kB-0.03%-24 B 🔽
@sentry/aws-serverless92.59 kB-0.02%-14 B 🔽
@sentry/cloudflare (withSentry) - minified217.81 kB--
@sentry/cloudflare (withSentry)537.06 kB--

View base workflow run

@cursorcursorBot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 56dbdfd. Configure here.

@andreiborza
andreiborza marked this pull request as ready for review August 5, 2026 18:06
@andreiborza
andreiborza requested review from a team as code ownersAugust 5, 2026 18:06
@andreiborza
andreiborza requested review from JPeer264, Lms24, chargome, mydea and nicohrubec and removed request for a team and mydeaAugust 5, 2026 18:06
…lemetry`
Removes the `@sentry/node/init` and `@sentry/node/preload` no-code entry
points and the `preloadOpenTelemetry()` function. All instrumentation is
channel-based via orchestrion and set up when the instrumented module loads,
so preloading no longer does anything.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andreiborza
andreiborzaforce-pushed the ab/clean-up-node-submodule-exports branch from 56dbdfd to 58d24feCompareAugust 5, 2026 18:11

@Lms24Lms24 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

side-note, absolutely not relevant for this PR: ignoreLayersType is very cryptic to understand for users. Most express users likely don't even know what a layer is. Should we think about a more human-friendly option here? Ignoring middleware spans is something people want to do. ignoreSpans covers this use case universally but since we have the option on integration level, it can be used more precisely and probably reduce perf overhead for perf-conscious users.

... this also made me realize we don't document the express integration 😅 and this option is only documented for Koa

@andreiborza

Copy link
Copy Markdown
MemberAuthor

@Lms24 right, we don't have documentations for any of the vendored instrumentations. Def some work to do there.

@andreiborza
andreiborza merged commit 288bbb6 into developAug 6, 2026
271 checks passed
@andreiborza
andreiborza deleted the ab/clean-up-node-submodule-exports branch August 6, 2026 08:21
andreiborza added a commit that referenced this pull request Sep 2, 2026
## What
Adds a `node-otel-sdk-node` e2e app for the setup where OpenTelemetry
owns tracing: the user's own `@opentelemetry/sdk-node` with Sentry
tracing off and `otlpIntegration()`. It runs as ESM so
import-in-the-middle and orchestrion are exercised together. The
migration guide now presents that setup as requiring Sentry tracing off,
instead of offering Sentry spans alongside your own.
## Why
The bring-your-own-OpenTelemetry apps named in the issue were removed
together with the paths they tested (`SentrySpanProcessor` in #22557,
the preload entry point in #23074), so nothing covered a user owned
OpenTelemetry SDK any more.
Closes: #22645
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for freeto 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.

clean up @sentry/node submodule exports

3 participants

@andreiborza@Lms24@nicohrubec
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry - #23074

Merged
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports
Aug 6, 2026
Merged

feat(node)!: Remove init, preload entry points and preloadOpenTelemetry#23074
andreiborza merged 1 commit into
developfrom
ab/clean-up-node-submodule-exports

Conversation

@andreiborza

@andreiborzaandreiborza commented Aug 5, 2026

Copy link
Copy Markdown
Member

What

Remove the following from @sentry/node, part of the v11 major:

  • The @sentry/node/init and @sentry/node/preload no-code entry points.
  • The preloadOpenTelemetry() function.
  • The node-express-{cjs,esm}-preload e2e apps and the no-code integration suite that tested them.

Also repurposes the express/late-init integration suite (renamed to express/ignore-layers-type) into a focused ignoreLayersType test.

Why

All instrumentation is channel-based via orchestrion and is set up when the instrumented module loads, so preloading no longer does anything. preloadOpenTelemetry() could only ever preload the Sentry HTTP breadcrumb/propagation instrument, which normal init() already sets up, so it had quietly stopped doing its advertised job.

The issue proposed deprecating init/preload, but since develop is the v11 line a deprecation cycle buys nothing, so these are removed outright. @sentry/node/import stays as the one supported hook. @sentry/node/loader and @sentry/node/auto-diagnostic-channels from the issue are already moot: /loader was removed with the iitm cleanup, and /import already is the orchestrion diagnostics-channel hook that /auto-diagnostic-channels was meant to become.

The late-init suite existed to guard lazy Express option loading via a later init(), a mechanism that now lives only in @sentry/core's patchLayer (Deno-only, unit-tested) and is unreachable in node under orchestrion. It was also the only node e2e test exercising ignoreLayersType, so it is kept and refocused on that option rather than deleted.

Closes: #21483

@andreiborza

andreiborza commented Aug 5, 2026

Copy link
Copy Markdown
MemberAuthor

buglitzer moch

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser30.12 kB--
@sentry/browser - with treeshaking flags28.32 kB--
@sentry/browser (incl. Tracing)47.53 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.54 kB--
@sentry/browser (incl. Tracing, Profiling)52.29 kB--
@sentry/browser (incl. Tracing, Replay)86.91 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags76.33 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.6 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)104.25 kB--
@sentry/browser (incl. Feedback)47.45 kB--
@sentry/browser (incl. sendFeedback)34.96 kB--
@sentry/browser (incl. FeedbackAsync)40.1 kB--
@sentry/browser (incl. Metrics)31.2 kB--
@sentry/browser (incl. Logs)31.41 kB--
@sentry/browser (incl. Metrics & Logs)32.11 kB--
@sentry/react31.93 kB--
@sentry/react (incl. Tracing)49.79 kB--
@sentry/vue35.2 kB--
@sentry/vue (incl. Tracing)49.51 kB--
@sentry/svelte30.14 kB--
CDN Bundle32.13 kB--
CDN Bundle (incl. Tracing)47.81 kB--
CDN Bundle (incl. Logs, Metrics)33.67 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.19 kB--
CDN Bundle (incl. Replay, Logs, Metrics)73.02 kB--
CDN Bundle (incl. Tracing, Replay)85.45 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.77 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.27 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.59 kB--
CDN Bundle - uncompressed95.27 kB--
CDN Bundle (incl. Tracing) - uncompressed142.78 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed99.9 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.75 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.6 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed262.03 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed266 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.74 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.69 kB--
@sentry/nextjs (client)52.36 kB--
@sentry/sveltekit (client)47.99 kB--
@sentry/core/server65.54 kB--
@sentry/core/browser51.82 kB--
@sentry/node120.44 kB-0.02%-18 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing84.09 kB-0.03%-24 B 🔽
@sentry/aws-serverless92.59 kB-0.02%-14 B 🔽
@sentry/cloudflare (withSentry) - minified217.81 kB--
@sentry/cloudflare (withSentry)537.06 kB--

View base workflow run

@cursorcursorBot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 56dbdfd. Configure here.

@andreiborza
andreiborza marked this pull request as ready for review August 5, 2026 18:06
@andreiborza
andreiborza requested review from a team as code ownersAugust 5, 2026 18:06
@andreiborza
andreiborza requested review from JPeer264, Lms24, chargome, mydea and nicohrubec and removed request for a team and mydeaAugust 5, 2026 18:06
…lemetry`
Removes the `@sentry/node/init` and `@sentry/node/preload` no-code entry
points and the `preloadOpenTelemetry()` function. All instrumentation is
channel-based via orchestrion and set up when the instrumented module loads,
so preloading no longer does anything.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andreiborza
andreiborzaforce-pushed the ab/clean-up-node-submodule-exports branch from 56dbdfd to 58d24feCompareAugust 5, 2026 18:11

@Lms24Lms24 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

side-note, absolutely not relevant for this PR: ignoreLayersType is very cryptic to understand for users. Most express users likely don't even know what a layer is. Should we think about a more human-friendly option here? Ignoring middleware spans is something people want to do. ignoreSpans covers this use case universally but since we have the option on integration level, it can be used more precisely and probably reduce perf overhead for perf-conscious users.

... this also made me realize we don't document the express integration 😅 and this option is only documented for Koa

@andreiborza

Copy link
Copy Markdown
MemberAuthor

@Lms24 right, we don't have documentations for any of the vendored instrumentations. Def some work to do there.

@andreiborza
andreiborza merged commit 288bbb6 into developAug 6, 2026
271 checks passed
@andreiborza
andreiborza deleted the ab/clean-up-node-submodule-exports branch August 6, 2026 08:21
andreiborza added a commit that referenced this pull request Sep 2, 2026
## What
Adds a `node-otel-sdk-node` e2e app for the setup where OpenTelemetry
owns tracing: the user's own `@opentelemetry/sdk-node` with Sentry
tracing off and `otlpIntegration()`. It runs as ESM so
import-in-the-middle and orchestrion are exercised together. The
migration guide now presents that setup as requiring Sentry tracing off,
instead of offering Sentry spans alongside your own.
## Why
The bring-your-own-OpenTelemetry apps named in the issue were removed
together with the paths they tested (`SentrySpanProcessor` in #22557,
the preload entry point in #23074), so nothing covered a user owned
OpenTelemetry SDK any more.
Closes: #22645
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for freeto 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.

clean up @sentry/node submodule exports

3 participants

@andreiborza@Lms24@nicohrubec