-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
feat(react-router): Add Experimental React Server Components (RSC) instrumentation #18882
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
node-overhead report 🧳Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.
|
159fb80 to
07fc2d6
Compare
|
@onurtemizkan sorry this one went under the radar. Can you resolve the conflict and ping me again? |
07fc2d6 to
c94138a
Compare
|
@chargome, it's ready for review 👍 |
Codecov Results 📊Generated by Codecov Action |
chargome
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally LGTM to me but is there a way we could already wrap the server components with vite? Also initing the Client in a hook might happen quite late – any ideas if the client will eventually support an entry file?
| /** | ||
| * WeakSet to track errors that have been captured to avoid double-capture. | ||
| * Uses WeakSet so errors are automatically removed when garbage collected. | ||
| */ | ||
| const CAPTURED_ERRORS = new WeakSet<object>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
q: Why do we need this in here? We have a dedupe integration that should take of this I think?
Resolves: #17337
Adds experimental instrumentation for React Router v7.9.0+ React Server Components (RSC).
React Router's RSC support is currently behind
unstable_reactRouterRSC()and subject to change. These wrappers provide error capture and performance tracing for RSC server requests, server components, and server functions.RSC Request Handlers
Added
wrapMatchRSCServerRequest()andwrapRouteRSCServerRequest():wrapMatchRSCServerRequest- Wraps RSC server matching with spans for generateResponse and loadServerActionwrapRouteRSCServerRequest- Wraps SSR request handling with spans for fetchServer and renderHTMLServer Components
Added
wrapServerComponent()for error instrumentation:Redirect (3xx) and not-found (404) responses are not captured as errors.
Server Functions
Added
wrapServerFunction()andwrapServerFunctions()for "use server" functions:Needs docs PR