fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518
fix(server-utils): Ensure all orchestrion instrumentation lazy registers#22518isaacs wants to merge 3 commits into
Conversation
size-limit report 📦
|
73c683a to
d752238
Compare
|
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 |
6d6a126 to
464dc8f
Compare
…on Node (#22518) Co-Authored-By: isaacs <i@izs.me> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
464dc8f to
ae93c4e
Compare
…azy registers on Node (#22518)
…on Node (#22518) Co-Authored-By: isaacs <i@izs.me> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38d60ec to
7edaad4
Compare
…azy registers on Node (#22518)
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 549f754. Configure here.
| cleanup?.(); | ||
| callback(...args); | ||
| }); | ||
| }; |
There was a problem hiding this comment.
Eager binding wait regresses some subscribers
Low Severity
invokeOrchestrionInstrumentation always defers through waitForTracingChannelBinding, including for integrations such as Hapi and KafkaJS that previously subscribed immediately and do not need the async-context binding. If the binding is missing for the helper’s single retry, those subscribers never attach, and a one-shot module-inject event will not recover them.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 549f754. Configure here.
549f754 to
3f5b4ba
Compare


This ports and refactors the intent of #22387, using the mechanisms landed on
developin #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.