diff --git a/packages/core/src/integrations/requestdata.ts b/packages/core/src/integrations/requestdata.ts index 8f23912c5b58..406c861881ca 100644 --- a/packages/core/src/integrations/requestdata.ts +++ b/packages/core/src/integrations/requestdata.ts @@ -79,14 +79,13 @@ const _requestDataIntegration = ((options: RequestDataIntegrationOptions = {}) = // that's happened, it will be easier to add this logic in without worrying about unexpected side effects.) const { sdkProcessingMetadata = {} } = event; - const { request, normalizedRequest } = sdkProcessingMetadata; + const { request, normalizedRequest, ipAddress } = sdkProcessingMetadata; const addRequestDataOptions = convertReqDataIntegrationOptsToAddReqDataOpts(_options); // If this is set, it takes precedence over the plain request object if (normalizedRequest) { // Some other data is not available in standard HTTP requests, but can sometimes be augmented by e.g. Express or Next.js - const ipAddress = request ? request.ip || (request.socket && request.socket.remoteAddress) : undefined; const user = request ? request.user : undefined; addNormalizedRequestDataToEvent(event, normalizedRequest, { ipAddress, user }, addRequestDataOptions); diff --git a/packages/core/src/scope.ts b/packages/core/src/scope.ts index d4fcd1e27743..74e42b18a71b 100644 --- a/packages/core/src/scope.ts +++ b/packages/core/src/scope.ts @@ -67,6 +67,7 @@ export interface SdkProcessingMetadata { capturedSpanScope?: Scope; capturedSpanIsolationScope?: Scope; spanCountBeforeProcessing?: number; + ipAddress?: string; } /** diff --git a/packages/node/src/integrations/http/SentryHttpInstrumentation.ts b/packages/node/src/integrations/http/SentryHttpInstrumentation.ts index 7e16856ff023..46b5da5fcda7 100644 --- a/packages/node/src/integrations/http/SentryHttpInstrumentation.ts +++ b/packages/node/src/integrations/http/SentryHttpInstrumentation.ts @@ -155,6 +155,9 @@ export class SentryHttpInstrumentation extends InstrumentationBase