diff --git a/packages/remix/src/utils/instrumentServer.ts b/packages/remix/src/utils/instrumentServer.ts index 0907e14efe44..deb822c51c51 100644 --- a/packages/remix/src/utils/instrumentServer.ts +++ b/packages/remix/src/utils/instrumentServer.ts @@ -70,7 +70,7 @@ function extractData(response: Response): Promise { return responseClone.text(); } -function captureRemixServerException(err: Error, name: string): void { +function captureRemixServerException(err: Error, name: string, request: Request): void { // Skip capturing if the thrown error is not a 5xx response // https://remix.run/docs/en/v1/api/conventions#throwing-responses-in-loaders if (isResponse(err) && err.status < 500) { @@ -78,6 +78,7 @@ function captureRemixServerException(err: Error, name: string): void { } captureException(isResponse(err) ? extractData(err) : err, scope => { + scope.setSDKProcessingMetadata({ request }); scope.addEventProcessor(event => { addExceptionMechanism(event, { type: 'instrument', @@ -127,7 +128,7 @@ function makeWrappedDocumentRequestFunction( span?.finish(); } catch (err) { - captureRemixServerException(err, 'documentRequest'); + captureRemixServerException(err, 'documentRequest', request); throw err; } @@ -164,7 +165,7 @@ function makeWrappedDataFunction(origFn: DataFunction, id: string, name: 'action currentScope.setSpan(activeTransaction); span?.finish(); } catch (err) { - captureRemixServerException(err, name); + captureRemixServerException(err, name, args.request); throw err; } diff --git a/packages/remix/src/utils/serverAdapters/express.ts b/packages/remix/src/utils/serverAdapters/express.ts index 747abadc6a2a..136246e60dde 100644 --- a/packages/remix/src/utils/serverAdapters/express.ts +++ b/packages/remix/src/utils/serverAdapters/express.ts @@ -60,6 +60,11 @@ function wrapExpressRequestHandler( const request = extractRequestData(req); const hub = getCurrentHub(); const options = hub.getClient()?.getOptions(); + const scope = hub.getScope(); + + if (scope) { + scope.setSDKProcessingMetadata({ request }); + } if (!options || !hasTracingEnabled(options) || !request.url || !request.method) { return origRequestHandler.call(this, req, res, next);