fix(server-utils): Ensure all orchestrion instrumentation lazy registers - #22518

Merged
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion
Aug 3, 2026
Merged

fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion

Conversation

@isaacs

Copy link
Copy Markdown
Member

This ports and refactors the intent of #22387, using the mechanisms landed on develop in #22094, rather than the mechanisms in #22386 which are similar in intent, but substantially different in implementation.

The difference from #22387 is entirely in the plumbing underneath the helper. The way that "is my module injected?" and "tell me when it gets injected" are answered, both now use the machinery that already landed.

Beyond that, the actual registration, event emitting, double-wrap guard, and integration refactoring, should all look very familiar.

@isaacs
isaacs requested review from JPeer264 and mydeaJuly 23, 2026 03:32
@isaacs
isaacs requested review from a team as code ownersJuly 23, 2026 03:32
Comment threadpackages/server-utils/src/integrations/tracing-channel/mongoose.ts Outdated
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
@github-actions

github-actionsBot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

PathSize% ChangeChange
@sentry/browser29.93 kB--
@sentry/browser - with treeshaking flags28.13 kB--
@sentry/browser (incl. Tracing)47.19 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.2 kB--
@sentry/browser (incl. Tracing, Profiling)51.93 kB--
@sentry/browser (incl. Tracing, Replay)86.51 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags75.94 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.23 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)103.87 kB--
@sentry/browser (incl. Feedback)47.24 kB--
@sentry/browser (incl. sendFeedback)34.77 kB--
@sentry/browser (incl. FeedbackAsync)39.87 kB--
@sentry/browser (incl. Metrics)31 kB--
@sentry/browser (incl. Logs)31.24 kB--
@sentry/browser (incl. Metrics & Logs)31.91 kB--
@sentry/react31.72 kB--
@sentry/react (incl. Tracing)49.44 kB--
@sentry/vue34.86 kB--
@sentry/vue (incl. Tracing)49.16 kB--
@sentry/svelte29.96 kB--
CDN Bundle31.97 kB--
CDN Bundle (incl. Tracing)47.57 kB--
CDN Bundle (incl. Logs, Metrics)33.52 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)48.93 kB--
CDN Bundle (incl. Replay, Logs, Metrics)72.88 kB--
CDN Bundle (incl. Tracing, Replay)85.19 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.48 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)90.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.28 kB--
CDN Bundle - uncompressed95.45 kB--
CDN Bundle (incl. Tracing) - uncompressed142.68 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed100.16 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.66 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.92 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed261.93 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed265.9 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.64 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.59 kB--
@sentry/nextjs (client)52.03 kB--
@sentry/sveltekit (client)47.63 kB--
@sentry/core/server79.88 kB--
@sentry/core/browser51.82 kB--
@sentry/node121.72 kB+0.18%+214 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing85.2 kB+0.18%+152 B 🔺
@sentry/aws-serverless93.87 kB+0.59%+548 B 🔺
@sentry/cloudflare (withSentry) - minified198.67 kB--
@sentry/cloudflare (withSentry)488.83 kB--

View base workflow run

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch 2 times, most recently from 73c683a to d752238CompareJuly 23, 2026 15:13
Comment threadpackages/server-utils/src/integrations/tracing-channel/knex.ts Outdated
@isaacs

isaacs commented Jul 23, 2026

Copy link
Copy Markdown
MemberAuthor

Going to port this atop #22443 once that lands, since there are some conflicts.


UPDATE: this is now done. Single commit can base cleanly on develop if CI goes green and reviewers approve.

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 6d6a126 to 464dc8fCompareJuly 23, 2026 22:41
isaacs added a commit that referenced this pull request Jul 23, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 464dc8f to ae93c4eCompareJuly 23, 2026 22:43
@isaacs
isaacs enabled auto-merge (rebase) July 23, 2026 22:43
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts Outdated
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 38d60ec to 7edaad4CompareJuly 24, 2026 14:28
Comment threadpackages/server-utils/src/orchestrion/runtime/register.ts
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 549f754 to 3f5b4baCompareJuly 24, 2026 16:38
Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
isaacs added a commit that referenced this pull request Jul 27, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from f7f9237 to 254eee8CompareJuly 27, 2026 15:34
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea, @JPeer264, @getsentry/team-javascript-sdks, @getsentry/team-javascript-sdks-server — Please review this PR when you get a chance!

isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 254eee8 to 4208c97CompareJuly 28, 2026 16:56
isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 28, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 4208c97 to 565927eCompareJuly 28, 2026 19:20
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 797ce4a to 2d83921CompareJuly 29, 2026 15:06
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 2d83921 to 8d88bb4CompareJuly 29, 2026 15:07
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 8d88bb4 to 5ca08a7CompareJuly 29, 2026 17:50
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 5ca08a7 to 206b43fCompareJuly 30, 2026 19:33

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

I see now why this PR is so big. Overall this is a great addition. Just got minor comments

return;
}

DEBUG_BUILD &&

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.

m: Some of the debug logs were removed entirely, and others do still exist, such as the one in AWS or langgraph. Is this wanted to be like that? Would be actually nice if that could live entirely somehow in incokeOrchestrionInstrumentation

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good catch, yes, some of these were removed, but a few remained for no particular reason, just overlooked or weren't converted so didn't get changed.

Moving it into invokeOrchestrionInstrumentation: agreed, that's a good improvement. The helper already knows the module names, and it knows more than what the old logs said, because it can state why it fired (or didn't), so that can actually be much more useful than just dumping the config name.

},
] satisfies InstrumentationConfig[];

export const awsSdkModuleNames = getModuleNames(awsSdkConfig);

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.

q: Is there a guard somehow for integrations where we forget to add this?

Not sure if there could be a time where we forget it, because we would need it for the integration itself, just thinking out loud

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Forgetting xModuleNames would raise a type issue, so I don't think it's a problem. But the bigger issue is if we have an integration that forgets to route through invokeOrchestrionInstrumentation entirely, just doing the setupOnce style that predated this PR. (There are a few that do this, but only non-default integration cases, where we don't really need to worry, because presumably the user knows they're going to be using that module eventually, if they're explicitly instrumenting it.)

That would potentially get us back to a state where we're blowing up the node channel budget again. However, I think this is relatively unlikely. If we add a new default instrumentation, we (or our agents) are mostly likely going to copypasta the pattern that we already have established.

Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea — Please review this PR when you get a chance!

Co-authored-by: Jan Peer Stöcklmair <jan.peer@sentry.io>
@isaacs
isaacs disabled auto-merge July 31, 2026 14:35
@andreiborza
andreiborza merged commit 36ecc10 into developAug 3, 2026
269 checks passed
@andreiborza
andreiborza deleted the isaacs/lazy-register-orchestrion branch August 3, 2026 07:50
mahenoorsalat pushed a commit to mahenoorsalat/sentry-javascript that referenced this pull request Aug 23, 2026
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.

4 participants

@isaacs@JPeer264@andreiborza@mydea
, '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

fix(server-utils): Ensure all orchestrion instrumentation lazy registers - #22518

Merged
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion
Aug 3, 2026
Merged

fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion

Conversation

@isaacs

Copy link
Copy Markdown
Member

This ports and refactors the intent of #22387, using the mechanisms landed on develop in #22094, rather than the mechanisms in #22386 which are similar in intent, but substantially different in implementation.

The difference from #22387 is entirely in the plumbing underneath the helper. The way that "is my module injected?" and "tell me when it gets injected" are answered, both now use the machinery that already landed.

Beyond that, the actual registration, event emitting, double-wrap guard, and integration refactoring, should all look very familiar.

@isaacs
isaacs requested review from JPeer264 and mydeaJuly 23, 2026 03:32
@isaacs
isaacs requested review from a team as code ownersJuly 23, 2026 03:32
Comment threadpackages/server-utils/src/integrations/tracing-channel/mongoose.ts Outdated
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
@github-actions

github-actionsBot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

PathSize% ChangeChange
@sentry/browser29.93 kB--
@sentry/browser - with treeshaking flags28.13 kB--
@sentry/browser (incl. Tracing)47.19 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.2 kB--
@sentry/browser (incl. Tracing, Profiling)51.93 kB--
@sentry/browser (incl. Tracing, Replay)86.51 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags75.94 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.23 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)103.87 kB--
@sentry/browser (incl. Feedback)47.24 kB--
@sentry/browser (incl. sendFeedback)34.77 kB--
@sentry/browser (incl. FeedbackAsync)39.87 kB--
@sentry/browser (incl. Metrics)31 kB--
@sentry/browser (incl. Logs)31.24 kB--
@sentry/browser (incl. Metrics & Logs)31.91 kB--
@sentry/react31.72 kB--
@sentry/react (incl. Tracing)49.44 kB--
@sentry/vue34.86 kB--
@sentry/vue (incl. Tracing)49.16 kB--
@sentry/svelte29.96 kB--
CDN Bundle31.97 kB--
CDN Bundle (incl. Tracing)47.57 kB--
CDN Bundle (incl. Logs, Metrics)33.52 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)48.93 kB--
CDN Bundle (incl. Replay, Logs, Metrics)72.88 kB--
CDN Bundle (incl. Tracing, Replay)85.19 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.48 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)90.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.28 kB--
CDN Bundle - uncompressed95.45 kB--
CDN Bundle (incl. Tracing) - uncompressed142.68 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed100.16 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.66 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.92 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed261.93 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed265.9 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.64 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.59 kB--
@sentry/nextjs (client)52.03 kB--
@sentry/sveltekit (client)47.63 kB--
@sentry/core/server79.88 kB--
@sentry/core/browser51.82 kB--
@sentry/node121.72 kB+0.18%+214 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing85.2 kB+0.18%+152 B 🔺
@sentry/aws-serverless93.87 kB+0.59%+548 B 🔺
@sentry/cloudflare (withSentry) - minified198.67 kB--
@sentry/cloudflare (withSentry)488.83 kB--

View base workflow run

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch 2 times, most recently from 73c683a to d752238CompareJuly 23, 2026 15:13
Comment threadpackages/server-utils/src/integrations/tracing-channel/knex.ts Outdated
@isaacs

isaacs commented Jul 23, 2026

Copy link
Copy Markdown
MemberAuthor

Going to port this atop #22443 once that lands, since there are some conflicts.


UPDATE: this is now done. Single commit can base cleanly on develop if CI goes green and reviewers approve.

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 6d6a126 to 464dc8fCompareJuly 23, 2026 22:41
isaacs added a commit that referenced this pull request Jul 23, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 464dc8f to ae93c4eCompareJuly 23, 2026 22:43
@isaacs
isaacs enabled auto-merge (rebase) July 23, 2026 22:43
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts Outdated
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 38d60ec to 7edaad4CompareJuly 24, 2026 14:28
Comment threadpackages/server-utils/src/orchestrion/runtime/register.ts
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 549f754 to 3f5b4baCompareJuly 24, 2026 16:38
Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
isaacs added a commit that referenced this pull request Jul 27, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from f7f9237 to 254eee8CompareJuly 27, 2026 15:34
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea, @JPeer264, @getsentry/team-javascript-sdks, @getsentry/team-javascript-sdks-server — Please review this PR when you get a chance!

isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 254eee8 to 4208c97CompareJuly 28, 2026 16:56
isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 28, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 4208c97 to 565927eCompareJuly 28, 2026 19:20
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 797ce4a to 2d83921CompareJuly 29, 2026 15:06
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 2d83921 to 8d88bb4CompareJuly 29, 2026 15:07
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 8d88bb4 to 5ca08a7CompareJuly 29, 2026 17:50
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 5ca08a7 to 206b43fCompareJuly 30, 2026 19:33

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

I see now why this PR is so big. Overall this is a great addition. Just got minor comments

return;
}

DEBUG_BUILD &&

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.

m: Some of the debug logs were removed entirely, and others do still exist, such as the one in AWS or langgraph. Is this wanted to be like that? Would be actually nice if that could live entirely somehow in incokeOrchestrionInstrumentation

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good catch, yes, some of these were removed, but a few remained for no particular reason, just overlooked or weren't converted so didn't get changed.

Moving it into invokeOrchestrionInstrumentation: agreed, that's a good improvement. The helper already knows the module names, and it knows more than what the old logs said, because it can state why it fired (or didn't), so that can actually be much more useful than just dumping the config name.

},
] satisfies InstrumentationConfig[];

export const awsSdkModuleNames = getModuleNames(awsSdkConfig);

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.

q: Is there a guard somehow for integrations where we forget to add this?

Not sure if there could be a time where we forget it, because we would need it for the integration itself, just thinking out loud

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Forgetting xModuleNames would raise a type issue, so I don't think it's a problem. But the bigger issue is if we have an integration that forgets to route through invokeOrchestrionInstrumentation entirely, just doing the setupOnce style that predated this PR. (There are a few that do this, but only non-default integration cases, where we don't really need to worry, because presumably the user knows they're going to be using that module eventually, if they're explicitly instrumenting it.)

That would potentially get us back to a state where we're blowing up the node channel budget again. However, I think this is relatively unlikely. If we add a new default instrumentation, we (or our agents) are mostly likely going to copypasta the pattern that we already have established.

Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea — Please review this PR when you get a chance!

Co-authored-by: Jan Peer Stöcklmair <jan.peer@sentry.io>
@isaacs
isaacs disabled auto-merge July 31, 2026 14:35
@andreiborza
andreiborza merged commit 36ecc10 into developAug 3, 2026
269 checks passed
@andreiborza
andreiborza deleted the isaacs/lazy-register-orchestrion branch August 3, 2026 07:50
mahenoorsalat pushed a commit to mahenoorsalat/sentry-javascript that referenced this pull request Aug 23, 2026
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.

4 participants

@isaacs@JPeer264@andreiborza@mydea
, '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

fix(server-utils): Ensure all orchestrion instrumentation lazy registers - #22518

Merged
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion
Aug 3, 2026
Merged

fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion

Conversation

@isaacs

Copy link
Copy Markdown
Member

This ports and refactors the intent of #22387, using the mechanisms landed on develop in #22094, rather than the mechanisms in #22386 which are similar in intent, but substantially different in implementation.

The difference from #22387 is entirely in the plumbing underneath the helper. The way that "is my module injected?" and "tell me when it gets injected" are answered, both now use the machinery that already landed.

Beyond that, the actual registration, event emitting, double-wrap guard, and integration refactoring, should all look very familiar.

@isaacs
isaacs requested review from JPeer264 and mydeaJuly 23, 2026 03:32
@isaacs
isaacs requested review from a team as code ownersJuly 23, 2026 03:32
Comment threadpackages/server-utils/src/integrations/tracing-channel/mongoose.ts Outdated
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
@github-actions

github-actionsBot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

PathSize% ChangeChange
@sentry/browser29.93 kB--
@sentry/browser - with treeshaking flags28.13 kB--
@sentry/browser (incl. Tracing)47.19 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.2 kB--
@sentry/browser (incl. Tracing, Profiling)51.93 kB--
@sentry/browser (incl. Tracing, Replay)86.51 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags75.94 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.23 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)103.87 kB--
@sentry/browser (incl. Feedback)47.24 kB--
@sentry/browser (incl. sendFeedback)34.77 kB--
@sentry/browser (incl. FeedbackAsync)39.87 kB--
@sentry/browser (incl. Metrics)31 kB--
@sentry/browser (incl. Logs)31.24 kB--
@sentry/browser (incl. Metrics & Logs)31.91 kB--
@sentry/react31.72 kB--
@sentry/react (incl. Tracing)49.44 kB--
@sentry/vue34.86 kB--
@sentry/vue (incl. Tracing)49.16 kB--
@sentry/svelte29.96 kB--
CDN Bundle31.97 kB--
CDN Bundle (incl. Tracing)47.57 kB--
CDN Bundle (incl. Logs, Metrics)33.52 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)48.93 kB--
CDN Bundle (incl. Replay, Logs, Metrics)72.88 kB--
CDN Bundle (incl. Tracing, Replay)85.19 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.48 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)90.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.28 kB--
CDN Bundle - uncompressed95.45 kB--
CDN Bundle (incl. Tracing) - uncompressed142.68 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed100.16 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.66 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.92 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed261.93 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed265.9 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.64 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.59 kB--
@sentry/nextjs (client)52.03 kB--
@sentry/sveltekit (client)47.63 kB--
@sentry/core/server79.88 kB--
@sentry/core/browser51.82 kB--
@sentry/node121.72 kB+0.18%+214 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing85.2 kB+0.18%+152 B 🔺
@sentry/aws-serverless93.87 kB+0.59%+548 B 🔺
@sentry/cloudflare (withSentry) - minified198.67 kB--
@sentry/cloudflare (withSentry)488.83 kB--

View base workflow run

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch 2 times, most recently from 73c683a to d752238CompareJuly 23, 2026 15:13
Comment threadpackages/server-utils/src/integrations/tracing-channel/knex.ts Outdated
@isaacs

isaacs commented Jul 23, 2026

Copy link
Copy Markdown
MemberAuthor

Going to port this atop #22443 once that lands, since there are some conflicts.


UPDATE: this is now done. Single commit can base cleanly on develop if CI goes green and reviewers approve.

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 6d6a126 to 464dc8fCompareJuly 23, 2026 22:41
isaacs added a commit that referenced this pull request Jul 23, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 464dc8f to ae93c4eCompareJuly 23, 2026 22:43
@isaacs
isaacs enabled auto-merge (rebase) July 23, 2026 22:43
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts Outdated
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 38d60ec to 7edaad4CompareJuly 24, 2026 14:28
Comment threadpackages/server-utils/src/orchestrion/runtime/register.ts
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 549f754 to 3f5b4baCompareJuly 24, 2026 16:38
Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
isaacs added a commit that referenced this pull request Jul 27, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from f7f9237 to 254eee8CompareJuly 27, 2026 15:34
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea, @JPeer264, @getsentry/team-javascript-sdks, @getsentry/team-javascript-sdks-server — Please review this PR when you get a chance!

isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 254eee8 to 4208c97CompareJuly 28, 2026 16:56
isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 28, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 4208c97 to 565927eCompareJuly 28, 2026 19:20
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 797ce4a to 2d83921CompareJuly 29, 2026 15:06
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 2d83921 to 8d88bb4CompareJuly 29, 2026 15:07
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 8d88bb4 to 5ca08a7CompareJuly 29, 2026 17:50
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 5ca08a7 to 206b43fCompareJuly 30, 2026 19:33

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

I see now why this PR is so big. Overall this is a great addition. Just got minor comments

return;
}

DEBUG_BUILD &&

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.

m: Some of the debug logs were removed entirely, and others do still exist, such as the one in AWS or langgraph. Is this wanted to be like that? Would be actually nice if that could live entirely somehow in incokeOrchestrionInstrumentation

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good catch, yes, some of these were removed, but a few remained for no particular reason, just overlooked or weren't converted so didn't get changed.

Moving it into invokeOrchestrionInstrumentation: agreed, that's a good improvement. The helper already knows the module names, and it knows more than what the old logs said, because it can state why it fired (or didn't), so that can actually be much more useful than just dumping the config name.

},
] satisfies InstrumentationConfig[];

export const awsSdkModuleNames = getModuleNames(awsSdkConfig);

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.

q: Is there a guard somehow for integrations where we forget to add this?

Not sure if there could be a time where we forget it, because we would need it for the integration itself, just thinking out loud

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Forgetting xModuleNames would raise a type issue, so I don't think it's a problem. But the bigger issue is if we have an integration that forgets to route through invokeOrchestrionInstrumentation entirely, just doing the setupOnce style that predated this PR. (There are a few that do this, but only non-default integration cases, where we don't really need to worry, because presumably the user knows they're going to be using that module eventually, if they're explicitly instrumenting it.)

That would potentially get us back to a state where we're blowing up the node channel budget again. However, I think this is relatively unlikely. If we add a new default instrumentation, we (or our agents) are mostly likely going to copypasta the pattern that we already have established.

Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea — Please review this PR when you get a chance!

Co-authored-by: Jan Peer Stöcklmair <jan.peer@sentry.io>
@isaacs
isaacs disabled auto-merge July 31, 2026 14:35
@andreiborza
andreiborza merged commit 36ecc10 into developAug 3, 2026
269 checks passed
@andreiborza
andreiborza deleted the isaacs/lazy-register-orchestrion branch August 3, 2026 07:50
mahenoorsalat pushed a commit to mahenoorsalat/sentry-javascript that referenced this pull request Aug 23, 2026
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.

4 participants

@isaacs@JPeer264@andreiborza@mydea
, '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

fix(server-utils): Ensure all orchestrion instrumentation lazy registers - #22518

Merged
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion
Aug 3, 2026
Merged

fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion

Conversation

@isaacs

Copy link
Copy Markdown
Member

This ports and refactors the intent of #22387, using the mechanisms landed on develop in #22094, rather than the mechanisms in #22386 which are similar in intent, but substantially different in implementation.

The difference from #22387 is entirely in the plumbing underneath the helper. The way that "is my module injected?" and "tell me when it gets injected" are answered, both now use the machinery that already landed.

Beyond that, the actual registration, event emitting, double-wrap guard, and integration refactoring, should all look very familiar.

@isaacs
isaacs requested review from JPeer264 and mydeaJuly 23, 2026 03:32
@isaacs
isaacs requested review from a team as code ownersJuly 23, 2026 03:32
Comment threadpackages/server-utils/src/integrations/tracing-channel/mongoose.ts Outdated
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
@github-actions

github-actionsBot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

PathSize% ChangeChange
@sentry/browser29.93 kB--
@sentry/browser - with treeshaking flags28.13 kB--
@sentry/browser (incl. Tracing)47.19 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.2 kB--
@sentry/browser (incl. Tracing, Profiling)51.93 kB--
@sentry/browser (incl. Tracing, Replay)86.51 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags75.94 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.23 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)103.87 kB--
@sentry/browser (incl. Feedback)47.24 kB--
@sentry/browser (incl. sendFeedback)34.77 kB--
@sentry/browser (incl. FeedbackAsync)39.87 kB--
@sentry/browser (incl. Metrics)31 kB--
@sentry/browser (incl. Logs)31.24 kB--
@sentry/browser (incl. Metrics & Logs)31.91 kB--
@sentry/react31.72 kB--
@sentry/react (incl. Tracing)49.44 kB--
@sentry/vue34.86 kB--
@sentry/vue (incl. Tracing)49.16 kB--
@sentry/svelte29.96 kB--
CDN Bundle31.97 kB--
CDN Bundle (incl. Tracing)47.57 kB--
CDN Bundle (incl. Logs, Metrics)33.52 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)48.93 kB--
CDN Bundle (incl. Replay, Logs, Metrics)72.88 kB--
CDN Bundle (incl. Tracing, Replay)85.19 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.48 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)90.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.28 kB--
CDN Bundle - uncompressed95.45 kB--
CDN Bundle (incl. Tracing) - uncompressed142.68 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed100.16 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.66 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.92 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed261.93 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed265.9 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.64 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.59 kB--
@sentry/nextjs (client)52.03 kB--
@sentry/sveltekit (client)47.63 kB--
@sentry/core/server79.88 kB--
@sentry/core/browser51.82 kB--
@sentry/node121.72 kB+0.18%+214 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing85.2 kB+0.18%+152 B 🔺
@sentry/aws-serverless93.87 kB+0.59%+548 B 🔺
@sentry/cloudflare (withSentry) - minified198.67 kB--
@sentry/cloudflare (withSentry)488.83 kB--

View base workflow run

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch 2 times, most recently from 73c683a to d752238CompareJuly 23, 2026 15:13
Comment threadpackages/server-utils/src/integrations/tracing-channel/knex.ts Outdated
@isaacs

isaacs commented Jul 23, 2026

Copy link
Copy Markdown
MemberAuthor

Going to port this atop #22443 once that lands, since there are some conflicts.


UPDATE: this is now done. Single commit can base cleanly on develop if CI goes green and reviewers approve.

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 6d6a126 to 464dc8fCompareJuly 23, 2026 22:41
isaacs added a commit that referenced this pull request Jul 23, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 464dc8f to ae93c4eCompareJuly 23, 2026 22:43
@isaacs
isaacs enabled auto-merge (rebase) July 23, 2026 22:43
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts Outdated
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 38d60ec to 7edaad4CompareJuly 24, 2026 14:28
Comment threadpackages/server-utils/src/orchestrion/runtime/register.ts
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 549f754 to 3f5b4baCompareJuly 24, 2026 16:38
Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
isaacs added a commit that referenced this pull request Jul 27, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from f7f9237 to 254eee8CompareJuly 27, 2026 15:34
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea, @JPeer264, @getsentry/team-javascript-sdks, @getsentry/team-javascript-sdks-server — Please review this PR when you get a chance!

isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 254eee8 to 4208c97CompareJuly 28, 2026 16:56
isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 28, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 4208c97 to 565927eCompareJuly 28, 2026 19:20
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 797ce4a to 2d83921CompareJuly 29, 2026 15:06
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 2d83921 to 8d88bb4CompareJuly 29, 2026 15:07
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 8d88bb4 to 5ca08a7CompareJuly 29, 2026 17:50
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 5ca08a7 to 206b43fCompareJuly 30, 2026 19:33

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

I see now why this PR is so big. Overall this is a great addition. Just got minor comments

return;
}

DEBUG_BUILD &&

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.

m: Some of the debug logs were removed entirely, and others do still exist, such as the one in AWS or langgraph. Is this wanted to be like that? Would be actually nice if that could live entirely somehow in incokeOrchestrionInstrumentation

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good catch, yes, some of these were removed, but a few remained for no particular reason, just overlooked or weren't converted so didn't get changed.

Moving it into invokeOrchestrionInstrumentation: agreed, that's a good improvement. The helper already knows the module names, and it knows more than what the old logs said, because it can state why it fired (or didn't), so that can actually be much more useful than just dumping the config name.

},
] satisfies InstrumentationConfig[];

export const awsSdkModuleNames = getModuleNames(awsSdkConfig);

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.

q: Is there a guard somehow for integrations where we forget to add this?

Not sure if there could be a time where we forget it, because we would need it for the integration itself, just thinking out loud

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Forgetting xModuleNames would raise a type issue, so I don't think it's a problem. But the bigger issue is if we have an integration that forgets to route through invokeOrchestrionInstrumentation entirely, just doing the setupOnce style that predated this PR. (There are a few that do this, but only non-default integration cases, where we don't really need to worry, because presumably the user knows they're going to be using that module eventually, if they're explicitly instrumenting it.)

That would potentially get us back to a state where we're blowing up the node channel budget again. However, I think this is relatively unlikely. If we add a new default instrumentation, we (or our agents) are mostly likely going to copypasta the pattern that we already have established.

Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea — Please review this PR when you get a chance!

Co-authored-by: Jan Peer Stöcklmair <jan.peer@sentry.io>
@isaacs
isaacs disabled auto-merge July 31, 2026 14:35
@andreiborza
andreiborza merged commit 36ecc10 into developAug 3, 2026
269 checks passed
@andreiborza
andreiborza deleted the isaacs/lazy-register-orchestrion branch August 3, 2026 07:50
mahenoorsalat pushed a commit to mahenoorsalat/sentry-javascript that referenced this pull request Aug 23, 2026
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.

4 participants

@isaacs@JPeer264@andreiborza@mydea
, '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

fix(server-utils): Ensure all orchestrion instrumentation lazy registers - #22518

Merged
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion
Aug 3, 2026
Merged

fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion

Conversation

@isaacs

Copy link
Copy Markdown
Member

This ports and refactors the intent of #22387, using the mechanisms landed on develop in #22094, rather than the mechanisms in #22386 which are similar in intent, but substantially different in implementation.

The difference from #22387 is entirely in the plumbing underneath the helper. The way that "is my module injected?" and "tell me when it gets injected" are answered, both now use the machinery that already landed.

Beyond that, the actual registration, event emitting, double-wrap guard, and integration refactoring, should all look very familiar.

@isaacs
isaacs requested review from JPeer264 and mydeaJuly 23, 2026 03:32
@isaacs
isaacs requested review from a team as code ownersJuly 23, 2026 03:32
Comment threadpackages/server-utils/src/integrations/tracing-channel/mongoose.ts Outdated
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
@github-actions

github-actionsBot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

PathSize% ChangeChange
@sentry/browser29.93 kB--
@sentry/browser - with treeshaking flags28.13 kB--
@sentry/browser (incl. Tracing)47.19 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.2 kB--
@sentry/browser (incl. Tracing, Profiling)51.93 kB--
@sentry/browser (incl. Tracing, Replay)86.51 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags75.94 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.23 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)103.87 kB--
@sentry/browser (incl. Feedback)47.24 kB--
@sentry/browser (incl. sendFeedback)34.77 kB--
@sentry/browser (incl. FeedbackAsync)39.87 kB--
@sentry/browser (incl. Metrics)31 kB--
@sentry/browser (incl. Logs)31.24 kB--
@sentry/browser (incl. Metrics & Logs)31.91 kB--
@sentry/react31.72 kB--
@sentry/react (incl. Tracing)49.44 kB--
@sentry/vue34.86 kB--
@sentry/vue (incl. Tracing)49.16 kB--
@sentry/svelte29.96 kB--
CDN Bundle31.97 kB--
CDN Bundle (incl. Tracing)47.57 kB--
CDN Bundle (incl. Logs, Metrics)33.52 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)48.93 kB--
CDN Bundle (incl. Replay, Logs, Metrics)72.88 kB--
CDN Bundle (incl. Tracing, Replay)85.19 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.48 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)90.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.28 kB--
CDN Bundle - uncompressed95.45 kB--
CDN Bundle (incl. Tracing) - uncompressed142.68 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed100.16 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.66 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.92 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed261.93 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed265.9 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.64 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.59 kB--
@sentry/nextjs (client)52.03 kB--
@sentry/sveltekit (client)47.63 kB--
@sentry/core/server79.88 kB--
@sentry/core/browser51.82 kB--
@sentry/node121.72 kB+0.18%+214 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing85.2 kB+0.18%+152 B 🔺
@sentry/aws-serverless93.87 kB+0.59%+548 B 🔺
@sentry/cloudflare (withSentry) - minified198.67 kB--
@sentry/cloudflare (withSentry)488.83 kB--

View base workflow run

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch 2 times, most recently from 73c683a to d752238CompareJuly 23, 2026 15:13
Comment threadpackages/server-utils/src/integrations/tracing-channel/knex.ts Outdated
@isaacs

isaacs commented Jul 23, 2026

Copy link
Copy Markdown
MemberAuthor

Going to port this atop #22443 once that lands, since there are some conflicts.


UPDATE: this is now done. Single commit can base cleanly on develop if CI goes green and reviewers approve.

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 6d6a126 to 464dc8fCompareJuly 23, 2026 22:41
isaacs added a commit that referenced this pull request Jul 23, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 464dc8f to ae93c4eCompareJuly 23, 2026 22:43
@isaacs
isaacs enabled auto-merge (rebase) July 23, 2026 22:43
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts Outdated
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 38d60ec to 7edaad4CompareJuly 24, 2026 14:28
Comment threadpackages/server-utils/src/orchestrion/runtime/register.ts
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 549f754 to 3f5b4baCompareJuly 24, 2026 16:38
Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
isaacs added a commit that referenced this pull request Jul 27, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from f7f9237 to 254eee8CompareJuly 27, 2026 15:34
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea, @JPeer264, @getsentry/team-javascript-sdks, @getsentry/team-javascript-sdks-server — Please review this PR when you get a chance!

isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 254eee8 to 4208c97CompareJuly 28, 2026 16:56
isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 28, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 4208c97 to 565927eCompareJuly 28, 2026 19:20
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 797ce4a to 2d83921CompareJuly 29, 2026 15:06
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 2d83921 to 8d88bb4CompareJuly 29, 2026 15:07
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 8d88bb4 to 5ca08a7CompareJuly 29, 2026 17:50
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 5ca08a7 to 206b43fCompareJuly 30, 2026 19:33

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

I see now why this PR is so big. Overall this is a great addition. Just got minor comments

return;
}

DEBUG_BUILD &&

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.

m: Some of the debug logs were removed entirely, and others do still exist, such as the one in AWS or langgraph. Is this wanted to be like that? Would be actually nice if that could live entirely somehow in incokeOrchestrionInstrumentation

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good catch, yes, some of these were removed, but a few remained for no particular reason, just overlooked or weren't converted so didn't get changed.

Moving it into invokeOrchestrionInstrumentation: agreed, that's a good improvement. The helper already knows the module names, and it knows more than what the old logs said, because it can state why it fired (or didn't), so that can actually be much more useful than just dumping the config name.

},
] satisfies InstrumentationConfig[];

export const awsSdkModuleNames = getModuleNames(awsSdkConfig);

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.

q: Is there a guard somehow for integrations where we forget to add this?

Not sure if there could be a time where we forget it, because we would need it for the integration itself, just thinking out loud

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Forgetting xModuleNames would raise a type issue, so I don't think it's a problem. But the bigger issue is if we have an integration that forgets to route through invokeOrchestrionInstrumentation entirely, just doing the setupOnce style that predated this PR. (There are a few that do this, but only non-default integration cases, where we don't really need to worry, because presumably the user knows they're going to be using that module eventually, if they're explicitly instrumenting it.)

That would potentially get us back to a state where we're blowing up the node channel budget again. However, I think this is relatively unlikely. If we add a new default instrumentation, we (or our agents) are mostly likely going to copypasta the pattern that we already have established.

Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea — Please review this PR when you get a chance!

Co-authored-by: Jan Peer Stöcklmair <jan.peer@sentry.io>
@isaacs
isaacs disabled auto-merge July 31, 2026 14:35
@andreiborza
andreiborza merged commit 36ecc10 into developAug 3, 2026
269 checks passed
@andreiborza
andreiborza deleted the isaacs/lazy-register-orchestrion branch August 3, 2026 07:50
mahenoorsalat pushed a commit to mahenoorsalat/sentry-javascript that referenced this pull request Aug 23, 2026
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.

4 participants

@isaacs@JPeer264@andreiborza@mydea
, '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

fix(server-utils): Ensure all orchestrion instrumentation lazy registers - #22518

Merged
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion
Aug 3, 2026
Merged

fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion

Conversation

@isaacs

Copy link
Copy Markdown
Member

This ports and refactors the intent of #22387, using the mechanisms landed on develop in #22094, rather than the mechanisms in #22386 which are similar in intent, but substantially different in implementation.

The difference from #22387 is entirely in the plumbing underneath the helper. The way that "is my module injected?" and "tell me when it gets injected" are answered, both now use the machinery that already landed.

Beyond that, the actual registration, event emitting, double-wrap guard, and integration refactoring, should all look very familiar.

@isaacs
isaacs requested review from JPeer264 and mydeaJuly 23, 2026 03:32
@isaacs
isaacs requested review from a team as code ownersJuly 23, 2026 03:32
Comment threadpackages/server-utils/src/integrations/tracing-channel/mongoose.ts Outdated
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
@github-actions

github-actionsBot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

PathSize% ChangeChange
@sentry/browser29.93 kB--
@sentry/browser - with treeshaking flags28.13 kB--
@sentry/browser (incl. Tracing)47.19 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.2 kB--
@sentry/browser (incl. Tracing, Profiling)51.93 kB--
@sentry/browser (incl. Tracing, Replay)86.51 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags75.94 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.23 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)103.87 kB--
@sentry/browser (incl. Feedback)47.24 kB--
@sentry/browser (incl. sendFeedback)34.77 kB--
@sentry/browser (incl. FeedbackAsync)39.87 kB--
@sentry/browser (incl. Metrics)31 kB--
@sentry/browser (incl. Logs)31.24 kB--
@sentry/browser (incl. Metrics & Logs)31.91 kB--
@sentry/react31.72 kB--
@sentry/react (incl. Tracing)49.44 kB--
@sentry/vue34.86 kB--
@sentry/vue (incl. Tracing)49.16 kB--
@sentry/svelte29.96 kB--
CDN Bundle31.97 kB--
CDN Bundle (incl. Tracing)47.57 kB--
CDN Bundle (incl. Logs, Metrics)33.52 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)48.93 kB--
CDN Bundle (incl. Replay, Logs, Metrics)72.88 kB--
CDN Bundle (incl. Tracing, Replay)85.19 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.48 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)90.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.28 kB--
CDN Bundle - uncompressed95.45 kB--
CDN Bundle (incl. Tracing) - uncompressed142.68 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed100.16 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.66 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.92 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed261.93 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed265.9 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.64 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.59 kB--
@sentry/nextjs (client)52.03 kB--
@sentry/sveltekit (client)47.63 kB--
@sentry/core/server79.88 kB--
@sentry/core/browser51.82 kB--
@sentry/node121.72 kB+0.18%+214 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing85.2 kB+0.18%+152 B 🔺
@sentry/aws-serverless93.87 kB+0.59%+548 B 🔺
@sentry/cloudflare (withSentry) - minified198.67 kB--
@sentry/cloudflare (withSentry)488.83 kB--

View base workflow run

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch 2 times, most recently from 73c683a to d752238CompareJuly 23, 2026 15:13
Comment threadpackages/server-utils/src/integrations/tracing-channel/knex.ts Outdated
@isaacs

isaacs commented Jul 23, 2026

Copy link
Copy Markdown
MemberAuthor

Going to port this atop #22443 once that lands, since there are some conflicts.


UPDATE: this is now done. Single commit can base cleanly on develop if CI goes green and reviewers approve.

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 6d6a126 to 464dc8fCompareJuly 23, 2026 22:41
isaacs added a commit that referenced this pull request Jul 23, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 464dc8f to ae93c4eCompareJuly 23, 2026 22:43
@isaacs
isaacs enabled auto-merge (rebase) July 23, 2026 22:43
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts Outdated
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 38d60ec to 7edaad4CompareJuly 24, 2026 14:28
Comment threadpackages/server-utils/src/orchestrion/runtime/register.ts
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 549f754 to 3f5b4baCompareJuly 24, 2026 16:38
Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
isaacs added a commit that referenced this pull request Jul 27, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from f7f9237 to 254eee8CompareJuly 27, 2026 15:34
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea, @JPeer264, @getsentry/team-javascript-sdks, @getsentry/team-javascript-sdks-server — Please review this PR when you get a chance!

isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 254eee8 to 4208c97CompareJuly 28, 2026 16:56
isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 28, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 4208c97 to 565927eCompareJuly 28, 2026 19:20
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 797ce4a to 2d83921CompareJuly 29, 2026 15:06
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 2d83921 to 8d88bb4CompareJuly 29, 2026 15:07
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 8d88bb4 to 5ca08a7CompareJuly 29, 2026 17:50
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 5ca08a7 to 206b43fCompareJuly 30, 2026 19:33

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

I see now why this PR is so big. Overall this is a great addition. Just got minor comments

return;
}

DEBUG_BUILD &&

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.

m: Some of the debug logs were removed entirely, and others do still exist, such as the one in AWS or langgraph. Is this wanted to be like that? Would be actually nice if that could live entirely somehow in incokeOrchestrionInstrumentation

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good catch, yes, some of these were removed, but a few remained for no particular reason, just overlooked or weren't converted so didn't get changed.

Moving it into invokeOrchestrionInstrumentation: agreed, that's a good improvement. The helper already knows the module names, and it knows more than what the old logs said, because it can state why it fired (or didn't), so that can actually be much more useful than just dumping the config name.

},
] satisfies InstrumentationConfig[];

export const awsSdkModuleNames = getModuleNames(awsSdkConfig);

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.

q: Is there a guard somehow for integrations where we forget to add this?

Not sure if there could be a time where we forget it, because we would need it for the integration itself, just thinking out loud

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Forgetting xModuleNames would raise a type issue, so I don't think it's a problem. But the bigger issue is if we have an integration that forgets to route through invokeOrchestrionInstrumentation entirely, just doing the setupOnce style that predated this PR. (There are a few that do this, but only non-default integration cases, where we don't really need to worry, because presumably the user knows they're going to be using that module eventually, if they're explicitly instrumenting it.)

That would potentially get us back to a state where we're blowing up the node channel budget again. However, I think this is relatively unlikely. If we add a new default instrumentation, we (or our agents) are mostly likely going to copypasta the pattern that we already have established.

Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea — Please review this PR when you get a chance!

Co-authored-by: Jan Peer Stöcklmair <jan.peer@sentry.io>
@isaacs
isaacs disabled auto-merge July 31, 2026 14:35
@andreiborza
andreiborza merged commit 36ecc10 into developAug 3, 2026
269 checks passed
@andreiborza
andreiborza deleted the isaacs/lazy-register-orchestrion branch August 3, 2026 07:50
mahenoorsalat pushed a commit to mahenoorsalat/sentry-javascript that referenced this pull request Aug 23, 2026
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.

4 participants

@isaacs@JPeer264@andreiborza@mydea
, '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

fix(server-utils): Ensure all orchestrion instrumentation lazy registers - #22518

Merged
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion
Aug 3, 2026
Merged

fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion

Conversation

@isaacs

Copy link
Copy Markdown
Member

This ports and refactors the intent of #22387, using the mechanisms landed on develop in #22094, rather than the mechanisms in #22386 which are similar in intent, but substantially different in implementation.

The difference from #22387 is entirely in the plumbing underneath the helper. The way that "is my module injected?" and "tell me when it gets injected" are answered, both now use the machinery that already landed.

Beyond that, the actual registration, event emitting, double-wrap guard, and integration refactoring, should all look very familiar.

@isaacs
isaacs requested review from JPeer264 and mydeaJuly 23, 2026 03:32
@isaacs
isaacs requested review from a team as code ownersJuly 23, 2026 03:32
Comment threadpackages/server-utils/src/integrations/tracing-channel/mongoose.ts Outdated
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
@github-actions

github-actionsBot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

PathSize% ChangeChange
@sentry/browser29.93 kB--
@sentry/browser - with treeshaking flags28.13 kB--
@sentry/browser (incl. Tracing)47.19 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.2 kB--
@sentry/browser (incl. Tracing, Profiling)51.93 kB--
@sentry/browser (incl. Tracing, Replay)86.51 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags75.94 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.23 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)103.87 kB--
@sentry/browser (incl. Feedback)47.24 kB--
@sentry/browser (incl. sendFeedback)34.77 kB--
@sentry/browser (incl. FeedbackAsync)39.87 kB--
@sentry/browser (incl. Metrics)31 kB--
@sentry/browser (incl. Logs)31.24 kB--
@sentry/browser (incl. Metrics & Logs)31.91 kB--
@sentry/react31.72 kB--
@sentry/react (incl. Tracing)49.44 kB--
@sentry/vue34.86 kB--
@sentry/vue (incl. Tracing)49.16 kB--
@sentry/svelte29.96 kB--
CDN Bundle31.97 kB--
CDN Bundle (incl. Tracing)47.57 kB--
CDN Bundle (incl. Logs, Metrics)33.52 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)48.93 kB--
CDN Bundle (incl. Replay, Logs, Metrics)72.88 kB--
CDN Bundle (incl. Tracing, Replay)85.19 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.48 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)90.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.28 kB--
CDN Bundle - uncompressed95.45 kB--
CDN Bundle (incl. Tracing) - uncompressed142.68 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed100.16 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.66 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.92 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed261.93 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed265.9 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.64 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.59 kB--
@sentry/nextjs (client)52.03 kB--
@sentry/sveltekit (client)47.63 kB--
@sentry/core/server79.88 kB--
@sentry/core/browser51.82 kB--
@sentry/node121.72 kB+0.18%+214 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing85.2 kB+0.18%+152 B 🔺
@sentry/aws-serverless93.87 kB+0.59%+548 B 🔺
@sentry/cloudflare (withSentry) - minified198.67 kB--
@sentry/cloudflare (withSentry)488.83 kB--

View base workflow run

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch 2 times, most recently from 73c683a to d752238CompareJuly 23, 2026 15:13
Comment threadpackages/server-utils/src/integrations/tracing-channel/knex.ts Outdated
@isaacs

isaacs commented Jul 23, 2026

Copy link
Copy Markdown
MemberAuthor

Going to port this atop #22443 once that lands, since there are some conflicts.


UPDATE: this is now done. Single commit can base cleanly on develop if CI goes green and reviewers approve.

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 6d6a126 to 464dc8fCompareJuly 23, 2026 22:41
isaacs added a commit that referenced this pull request Jul 23, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 464dc8f to ae93c4eCompareJuly 23, 2026 22:43
@isaacs
isaacs enabled auto-merge (rebase) July 23, 2026 22:43
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts Outdated
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 38d60ec to 7edaad4CompareJuly 24, 2026 14:28
Comment threadpackages/server-utils/src/orchestrion/runtime/register.ts
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 549f754 to 3f5b4baCompareJuly 24, 2026 16:38
Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
isaacs added a commit that referenced this pull request Jul 27, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from f7f9237 to 254eee8CompareJuly 27, 2026 15:34
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea, @JPeer264, @getsentry/team-javascript-sdks, @getsentry/team-javascript-sdks-server — Please review this PR when you get a chance!

isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 254eee8 to 4208c97CompareJuly 28, 2026 16:56
isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 28, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 4208c97 to 565927eCompareJuly 28, 2026 19:20
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 797ce4a to 2d83921CompareJuly 29, 2026 15:06
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 2d83921 to 8d88bb4CompareJuly 29, 2026 15:07
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 8d88bb4 to 5ca08a7CompareJuly 29, 2026 17:50
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 5ca08a7 to 206b43fCompareJuly 30, 2026 19:33

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

I see now why this PR is so big. Overall this is a great addition. Just got minor comments

return;
}

DEBUG_BUILD &&

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.

m: Some of the debug logs were removed entirely, and others do still exist, such as the one in AWS or langgraph. Is this wanted to be like that? Would be actually nice if that could live entirely somehow in incokeOrchestrionInstrumentation

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good catch, yes, some of these were removed, but a few remained for no particular reason, just overlooked or weren't converted so didn't get changed.

Moving it into invokeOrchestrionInstrumentation: agreed, that's a good improvement. The helper already knows the module names, and it knows more than what the old logs said, because it can state why it fired (or didn't), so that can actually be much more useful than just dumping the config name.

},
] satisfies InstrumentationConfig[];

export const awsSdkModuleNames = getModuleNames(awsSdkConfig);

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.

q: Is there a guard somehow for integrations where we forget to add this?

Not sure if there could be a time where we forget it, because we would need it for the integration itself, just thinking out loud

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Forgetting xModuleNames would raise a type issue, so I don't think it's a problem. But the bigger issue is if we have an integration that forgets to route through invokeOrchestrionInstrumentation entirely, just doing the setupOnce style that predated this PR. (There are a few that do this, but only non-default integration cases, where we don't really need to worry, because presumably the user knows they're going to be using that module eventually, if they're explicitly instrumenting it.)

That would potentially get us back to a state where we're blowing up the node channel budget again. However, I think this is relatively unlikely. If we add a new default instrumentation, we (or our agents) are mostly likely going to copypasta the pattern that we already have established.

Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea — Please review this PR when you get a chance!

Co-authored-by: Jan Peer Stöcklmair <jan.peer@sentry.io>
@isaacs
isaacs disabled auto-merge July 31, 2026 14:35
@andreiborza
andreiborza merged commit 36ecc10 into developAug 3, 2026
269 checks passed
@andreiborza
andreiborza deleted the isaacs/lazy-register-orchestrion branch August 3, 2026 07:50
mahenoorsalat pushed a commit to mahenoorsalat/sentry-javascript that referenced this pull request Aug 23, 2026
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.

4 participants

@isaacs@JPeer264@andreiborza@mydea
, '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

fix(server-utils): Ensure all orchestrion instrumentation lazy registers - #22518

Merged
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion
Aug 3, 2026
Merged

fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
andreiborza merged 3 commits into
developfrom
isaacs/lazy-register-orchestrion

Conversation

@isaacs

Copy link
Copy Markdown
Member

This ports and refactors the intent of #22387, using the mechanisms landed on develop in #22094, rather than the mechanisms in #22386 which are similar in intent, but substantially different in implementation.

The difference from #22387 is entirely in the plumbing underneath the helper. The way that "is my module injected?" and "tell me when it gets injected" are answered, both now use the machinery that already landed.

Beyond that, the actual registration, event emitting, double-wrap guard, and integration refactoring, should all look very familiar.

@isaacs
isaacs requested review from JPeer264 and mydeaJuly 23, 2026 03:32
@isaacs
isaacs requested review from a team as code ownersJuly 23, 2026 03:32
Comment threadpackages/server-utils/src/integrations/tracing-channel/mongoose.ts Outdated
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
@github-actions

github-actionsBot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

PathSize% ChangeChange
@sentry/browser29.93 kB--
@sentry/browser - with treeshaking flags28.13 kB--
@sentry/browser (incl. Tracing)47.19 kB--
@sentry/browser (incl. Tracing + Span Streaming)47.2 kB--
@sentry/browser (incl. Tracing, Profiling)51.93 kB--
@sentry/browser (incl. Tracing, Replay)86.51 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags75.94 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)91.23 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)103.87 kB--
@sentry/browser (incl. Feedback)47.24 kB--
@sentry/browser (incl. sendFeedback)34.77 kB--
@sentry/browser (incl. FeedbackAsync)39.87 kB--
@sentry/browser (incl. Metrics)31 kB--
@sentry/browser (incl. Logs)31.24 kB--
@sentry/browser (incl. Metrics & Logs)31.91 kB--
@sentry/react31.72 kB--
@sentry/react (incl. Tracing)49.44 kB--
@sentry/vue34.86 kB--
@sentry/vue (incl. Tracing)49.16 kB--
@sentry/svelte29.96 kB--
CDN Bundle31.97 kB--
CDN Bundle (incl. Tracing)47.57 kB--
CDN Bundle (incl. Logs, Metrics)33.52 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)48.93 kB--
CDN Bundle (incl. Replay, Logs, Metrics)72.88 kB--
CDN Bundle (incl. Tracing, Replay)85.19 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.48 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)90.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.28 kB--
CDN Bundle - uncompressed95.45 kB--
CDN Bundle (incl. Tracing) - uncompressed142.68 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed100.16 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed146.66 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed224.92 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed261.93 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed265.9 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed275.64 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed279.59 kB--
@sentry/nextjs (client)52.03 kB--
@sentry/sveltekit (client)47.63 kB--
@sentry/core/server79.88 kB--
@sentry/core/browser51.82 kB--
@sentry/node121.72 kB+0.18%+214 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection)0 Baddedadded
@sentry/node - without tracing85.2 kB+0.18%+152 B 🔺
@sentry/aws-serverless93.87 kB+0.59%+548 B 🔺
@sentry/cloudflare (withSentry) - minified198.67 kB--
@sentry/cloudflare (withSentry)488.83 kB--

View base workflow run

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch 2 times, most recently from 73c683a to d752238CompareJuly 23, 2026 15:13
Comment threadpackages/server-utils/src/integrations/tracing-channel/knex.ts Outdated
@isaacs

isaacs commented Jul 23, 2026

Copy link
Copy Markdown
MemberAuthor

Going to port this atop #22443 once that lands, since there are some conflicts.


UPDATE: this is now done. Single commit can base cleanly on develop if CI goes green and reviewers approve.

@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 6d6a126 to 464dc8fCompareJuly 23, 2026 22:41
isaacs added a commit that referenced this pull request Jul 23, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 464dc8f to ae93c4eCompareJuly 23, 2026 22:43
@isaacs
isaacs enabled auto-merge (rebase) July 23, 2026 22:43
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts Outdated
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 38d60ec to 7edaad4CompareJuly 24, 2026 14:28
Comment threadpackages/server-utils/src/orchestrion/runtime/register.ts
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
Comment threadpackages/server-utils/src/orchestrion/instrumentation.ts
isaacs added a commit that referenced this pull request Jul 24, 2026
…on Node (#22518)
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 24, 2026
isaacs added a commit that referenced this pull request Jul 24, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 549f754 to 3f5b4baCompareJuly 24, 2026 16:38
Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
isaacs added a commit that referenced this pull request Jul 27, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from f7f9237 to 254eee8CompareJuly 27, 2026 15:34
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea, @JPeer264, @getsentry/team-javascript-sdks, @getsentry/team-javascript-sdks-server — Please review this PR when you get a chance!

isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 254eee8 to 4208c97CompareJuly 28, 2026 16:56
isaacs added a commit that referenced this pull request Jul 28, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isaacs added a commit that referenced this pull request Jul 28, 2026
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 4208c97 to 565927eCompareJuly 28, 2026 19:20
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 28, 2026
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 797ce4a to 2d83921CompareJuly 29, 2026 15:06
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 2d83921 to 8d88bb4CompareJuly 29, 2026 15:07
isaacs added a commit that referenced this pull request Jul 29, 2026
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 8d88bb4 to 5ca08a7CompareJuly 29, 2026 17:50
…on Node (#22518)
fix: JS-3059
fix: #22302
Co-Authored-By: isaacs <i@izs.me>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@isaacs
isaacsforce-pushed the isaacs/lazy-register-orchestrion branch from 5ca08a7 to 206b43fCompareJuly 30, 2026 19:33

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

I see now why this PR is so big. Overall this is a great addition. Just got minor comments

return;
}

DEBUG_BUILD &&

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.

m: Some of the debug logs were removed entirely, and others do still exist, such as the one in AWS or langgraph. Is this wanted to be like that? Would be actually nice if that could live entirely somehow in incokeOrchestrionInstrumentation

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good catch, yes, some of these were removed, but a few remained for no particular reason, just overlooked or weren't converted so didn't get changed.

Moving it into invokeOrchestrionInstrumentation: agreed, that's a good improvement. The helper already knows the module names, and it knows more than what the old logs said, because it can state why it fired (or didn't), so that can actually be much more useful than just dumping the config name.

},
] satisfies InstrumentationConfig[];

export const awsSdkModuleNames = getModuleNames(awsSdkConfig);

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.

q: Is there a guard somehow for integrations where we forget to add this?

Not sure if there could be a time where we forget it, because we would need it for the integration itself, just thinking out loud

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Forgetting xModuleNames would raise a type issue, so I don't think it's a problem. But the bigger issue is if we have an integration that forgets to route through invokeOrchestrionInstrumentation entirely, just doing the setupOnce style that predated this PR. (There are a few that do this, but only non-default integration cases, where we don't really need to worry, because presumably the user knows they're going to be using that module eventually, if they're explicitly instrumenting it.)

That would potentially get us back to a state where we're blowing up the node channel budget again. However, I think this is relatively unlikely. If we add a new default instrumentation, we (or our agents) are mostly likely going to copypasta the pattern that we already have established.

Comment threadpackages/server-utils/src/orchestrion/bundler/webpack-loader.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

👋 @mydea — Please review this PR when you get a chance!

Co-authored-by: Jan Peer Stöcklmair <jan.peer@sentry.io>
@isaacs
isaacs disabled auto-merge July 31, 2026 14:35
@andreiborza
andreiborza merged commit 36ecc10 into developAug 3, 2026
269 checks passed
@andreiborza
andreiborza deleted the isaacs/lazy-register-orchestrion branch August 3, 2026 07:50
mahenoorsalat pushed a commit to mahenoorsalat/sentry-javascript that referenced this pull request Aug 23, 2026
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.

4 participants

@isaacs@JPeer264@andreiborza@mydea