diff --git a/packages/sveltekit/src/server/sdk.ts b/packages/sveltekit/src/server/sdk.ts index 1d1bbdbf2674..79f78b2b1908 100644 --- a/packages/sveltekit/src/server/sdk.ts +++ b/packages/sveltekit/src/server/sdk.ts @@ -1,6 +1,7 @@ import { configureScope } from '@sentry/core'; import type { NodeOptions } from '@sentry/node'; -import { init as initNodeSdk } from '@sentry/node'; +import { init as initNodeSdk, Integrations } from '@sentry/node'; +import { addOrUpdateIntegration } from '@sentry/utils'; import { applySdkMetadata } from '../common/metadata'; @@ -11,9 +12,15 @@ import { applySdkMetadata } from '../common/metadata'; export function init(options: NodeOptions): void { applySdkMetadata(options, ['sveltekit', 'node']); + addServerIntegrations(options); + initNodeSdk(options); configureScope(scope => { scope.setTag('runtime', 'node'); }); } + +function addServerIntegrations(options: NodeOptions): void { + options.integrations = addOrUpdateIntegration(new Integrations.Undici(), options.integrations || []); +} diff --git a/packages/sveltekit/test/server/sdk.test.ts b/packages/sveltekit/test/server/sdk.test.ts index c68be548c91c..5b1a924b6f1a 100644 --- a/packages/sveltekit/test/server/sdk.test.ts +++ b/packages/sveltekit/test/server/sdk.test.ts @@ -47,5 +47,20 @@ describe('Sentry server SDK', () => { // @ts-ignore need access to protected _tags attribute expect(currentScope._tags).toEqual({ runtime: 'node' }); }); + + it('adds the Undici integration', () => { + init({}); + + expect(nodeInit).toHaveBeenCalledTimes(1); + expect(nodeInit).toHaveBeenCalledWith( + expect.objectContaining({ + integrations: expect.arrayContaining([ + expect.objectContaining({ + name: 'Undici', + }), + ]), + }), + ); + }); }); });