diff --git a/packages/core/src/tracing/trace.ts b/packages/core/src/tracing/trace.ts index 7a31217fe51a..9d2d05a12095 100644 --- a/packages/core/src/tracing/trace.ts +++ b/packages/core/src/tracing/trace.ts @@ -499,6 +499,7 @@ function _startRootSpan( name, parentSampled: finalParentSampled, attributes: finalAttributes, + normalizedRequest: isolationScope.getScopeData().sdkProcessingMetadata.normalizedRequest, parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate), }, currentPropagationContext.sampleRand, diff --git a/packages/core/test/lib/tracing/trace.test.ts b/packages/core/test/lib/tracing/trace.test.ts index f2e605a7e4de..a15cb9c7abdf 100644 --- a/packages/core/test/lib/tracing/trace.test.ts +++ b/packages/core/test/lib/tracing/trace.test.ts @@ -801,6 +801,20 @@ describe('startSpan', () => { inheritOrSampleWith: expect.any(Function), }); }); + + it('passes normalizedRequest from the isolation scope to the sampling context', () => { + const options = getDefaultTestClientOptions({ tracesSampler }); + client = new TestClient(options); + setCurrentClient(client); + client.init(); + + const normalizedRequest = { url: '/test?query=123', method: 'GET', query_string: 'query=123' }; + getIsolationScope().setSDKProcessingMetadata({ normalizedRequest }); + + startSpan({ name: 'outer' }, () => {}); + + expect(tracesSampler).toHaveBeenLastCalledWith(expect.objectContaining({ normalizedRequest })); + }); }); it('includes the scope at the time the span was started when finished', async () => {