Skip to content

Commit 93c4d55

Browse files
committed
fix test issue & handle non-standard data
1 parent 2323493 commit 93c4d55

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

packages/google-cloud-serverless/test/gcpfunction/http.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,12 @@ describe('GCPFunction', () => {
176176
expect(defaultIntegrations).toContain('RequestData');
177177

178178
expect(mockScope.setSDKProcessingMetadata).toHaveBeenCalledWith({
179-
request: {
179+
normalizedRequest: {
180180
method: 'POST',
181-
url: '/path?q=query',
181+
url: 'http://hostname/path?q=query',
182182
headers: { host: 'hostname', 'content-type': 'application/json' },
183-
body: { foo: 'bar' },
183+
query_string: 'q=query',
184+
data: { foo: 'bar' },
184185
},
185186
});
186187
});

packages/node/src/integrations/http/SentryHttpInstrumentation.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { VERSION } from '@opentelemetry/core';
55
import type { InstrumentationConfig } from '@opentelemetry/instrumentation';
66
import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
77
import { getRequestInfo } from '@opentelemetry/instrumentation-http';
8-
import { addBreadcrumb, getClient, getIsolationScope, withIsolationScope } from '@sentry/core';
8+
import { addBreadcrumb, dropUndefinedKeys, getClient, getIsolationScope, withIsolationScope } from '@sentry/core';
99
import {
1010
extractQueryParamsFromUrl,
1111
getBreadcrumbLogLevelFromHttpStatusCode,
@@ -439,16 +439,21 @@ export function httpRequestToRequestEventData(request: IncomingMessage): Request
439439
const originalUrl = request.url || '';
440440
const absoluteUrl = originalUrl.startsWith(protocol) ? originalUrl : `${protocol}://${host}${originalUrl}`;
441441

442+
// This is non-standard, but may be sometimes set
443+
// It may be overwritten later by our own body handling
444+
const data = (request as PolymorphicRequest).body;
445+
442446
// This is non-standard, but may be set on e.g. Next.js or Express requests
443447
const cookies = (request as PolymorphicRequest).cookies;
444448

445-
const normalizedRequest: RequestEventData = {
449+
const normalizedRequest: RequestEventData = dropUndefinedKeys({
446450
url: absoluteUrl,
447451
method: request.method,
448452
query_string: extractQueryParamsFromUrl(originalUrl),
449453
headers: headersToDict(headers),
450454
cookies,
451-
};
455+
data,
456+
});
452457

453458
return normalizedRequest;
454459
}

0 commit comments

Comments
 (0)