From 0613d56d10770e3ffd8abeffa3826e0a9a89ebcd Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Mon, 29 Dec 2025 15:02:02 +0200 Subject: [PATCH 1/3] ref(pino): Only support pino > 9.10 --- .../node-integration-tests/package.json | 2 +- packages/node-core/src/integrations/pino.ts | 18 ------------------ yarn.lock | 8 ++++---- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/dev-packages/node-integration-tests/package.json b/dev-packages/node-integration-tests/package.json index 278b8e494226..0e7f725afc6a 100644 --- a/dev-packages/node-integration-tests/package.json +++ b/dev-packages/node-integration-tests/package.json @@ -72,7 +72,7 @@ "node-schedule": "^2.1.1", "openai": "5.18.1", "pg": "8.16.0", - "pino": "9.9.4", + "pino": "9.10.0", "pino-next": "npm:pino@^9.12.0", "postgres": "^3.4.7", "prisma": "6.15.0", diff --git a/packages/node-core/src/integrations/pino.ts b/packages/node-core/src/integrations/pino.ts index bd8c8ba40b4f..7392f6d34a1c 100644 --- a/packages/node-core/src/integrations/pino.ts +++ b/packages/node-core/src/integrations/pino.ts @@ -9,7 +9,6 @@ import { severityLevelFromString, withScope, } from '@sentry/core'; -import { addInstrumentationConfig } from '../sdk/injectLoader'; const SENTRY_TRACK_SYMBOL = Symbol('sentry-track-pino-logger'); @@ -128,18 +127,6 @@ const _pinoIntegration = defineIntegration((userOptions: DeepPartial { const enableLogs = !!client.getOptions().enableLogs; - addInstrumentationConfig({ - channelName: 'pino-log', - // From Pino v9.10.0 a tracing channel is available directly from Pino: - // https://github.com/pinojs/pino/pull/2281 - module: { name: 'pino', versionRange: '>=8.0.0 < 9.10.0', filePath: 'lib/tools.js' }, - functionQuery: { - functionName: 'asJson', - kind: 'Sync', - }, - }); - - const injectedChannel = diagnosticsChannel.tracingChannel('orchestrion:pino:pino-log'); const integratedChannel = diagnosticsChannel.tracingChannel('pino_asJson'); function onPinoStart(self: Pino, args: PinoHookArgs, result: PinoResult): void { @@ -192,11 +179,6 @@ const _pinoIntegration = defineIntegration((userOptions: DeepPartial { - const { self, arguments: args, result } = data as { self: Pino; arguments: PinoHookArgs; result: string }; - onPinoStart(self, args, JSON.parse(result)); - }); - integratedChannel.end.subscribe(data => { const { instance, diff --git a/yarn.lock b/yarn.lock index 0ef069c67d26..aedc5d8a8a6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26007,10 +26007,10 @@ pino-std-serializers@^7.0.0: resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz#7c625038b13718dbbd84ab446bd673dc52259e3b" integrity sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA== -pino@9.9.4: - version "9.9.4" - resolved "https://registry.yarnpkg.com/pino/-/pino-9.9.4.tgz#21ed2c27cc177f797e3249c99d340f0bcd6b248e" - integrity sha512-d1XorUQ7sSKqVcYdXuEYs2h1LKxejSorMEJ76XoZ0pPDf8VzJMe7GlPXpMBZeQ9gE4ZPIp5uGD+5Nw7scxiigg== +pino@9.10.0: + version "9.10.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-9.10.0.tgz#b78555637605ef6f4287e51a89b2087d66da4859" + integrity sha512-VOFxoNnxICtxaN8S3E73pR66c5MTFC+rwRcNRyHV/bV/c90dXvJqMfjkeRFsGBDXmlUN3LccJQPqGIufnaJePA== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" From f3dc5ddaa0cc4e8f626a66e195050774453e22c0 Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Mon, 29 Dec 2025 15:13:27 +0200 Subject: [PATCH 2/3] ref(node-core): remove apm-js collab deps --- packages/core/src/utils/worldwide.ts | 2 - packages/node-core/package.json | 2 - packages/node-core/src/sdk/index.ts | 3 -- packages/node-core/src/sdk/injectLoader.ts | 46 ---------------------- yarn.lock | 14 ------- 5 files changed, 67 deletions(-) delete mode 100644 packages/node-core/src/sdk/injectLoader.ts diff --git a/packages/core/src/utils/worldwide.ts b/packages/core/src/utils/worldwide.ts index 2ea6b391c613..1955014f1345 100644 --- a/packages/core/src/utils/worldwide.ts +++ b/packages/core/src/utils/worldwide.ts @@ -54,8 +54,6 @@ export type InternalGlobal = { */ _sentryModuleMetadata?: Record; _sentryEsmLoaderHookRegistered?: boolean; - _sentryInjectLoaderHookRegister?: () => void; - _sentryInjectLoaderHookRegistered?: boolean; } & Carrier; /** Get's the global object for the current JavaScript runtime */ diff --git a/packages/node-core/package.json b/packages/node-core/package.json index 482822e889cb..67ba8580a93e 100644 --- a/packages/node-core/package.json +++ b/packages/node-core/package.json @@ -99,13 +99,11 @@ } }, "dependencies": { - "@apm-js-collab/tracing-hooks": "^0.3.1", "@sentry/core": "10.39.0", "@sentry/opentelemetry": "10.39.0", "import-in-the-middle": "^2.0.6" }, "devDependencies": { - "@apm-js-collab/code-transformer": "^0.8.2", "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^2.5.0", "@opentelemetry/core": "^2.5.0", diff --git a/packages/node-core/src/sdk/index.ts b/packages/node-core/src/sdk/index.ts index 8b5fead854f1..de1569135cfd 100644 --- a/packages/node-core/src/sdk/index.ts +++ b/packages/node-core/src/sdk/index.ts @@ -9,7 +9,6 @@ import { functionToStringIntegration, getCurrentScope, getIntegrationsToSetup, - GLOBAL_OBJ, hasSpansEnabled, inboundFiltersIntegration, linkedErrorsIntegration, @@ -135,8 +134,6 @@ function _init( client.init(); - GLOBAL_OBJ._sentryInjectLoaderHookRegister?.(); - debug.log(`SDK initialized from ${isCjs() ? 'CommonJS' : 'ESM'}`); client.startClientReportTracking(); diff --git a/packages/node-core/src/sdk/injectLoader.ts b/packages/node-core/src/sdk/injectLoader.ts deleted file mode 100644 index 667996ebbe53..000000000000 --- a/packages/node-core/src/sdk/injectLoader.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; -import ModulePatch from '@apm-js-collab/tracing-hooks'; -import { debug, GLOBAL_OBJ } from '@sentry/core'; -import * as moduleModule from 'module'; -import { supportsEsmLoaderHooks } from '../utils/detection'; - -let instrumentationConfigs: InstrumentationConfig[] | undefined; - -/** - * Add an instrumentation config to be used by the injection loader. - */ -export function addInstrumentationConfig(config: InstrumentationConfig): void { - if (!supportsEsmLoaderHooks()) { - return; - } - - if (!instrumentationConfigs) { - instrumentationConfigs = []; - } - - instrumentationConfigs.push(config); - - GLOBAL_OBJ._sentryInjectLoaderHookRegister = () => { - if (GLOBAL_OBJ._sentryInjectLoaderHookRegistered) { - return; - } - - GLOBAL_OBJ._sentryInjectLoaderHookRegistered = true; - - const instrumentations = instrumentationConfigs || []; - - // Patch require to support CJS modules - const requirePatch = new ModulePatch({ instrumentations }); - requirePatch.patch(); - - // Add ESM loader to support ESM modules - try { - // @ts-expect-error register is available in these versions - moduleModule.register('@apm-js-collab/tracing-hooks/hook.mjs', import.meta.url, { - data: { instrumentations }, - }); - } catch (error) { - debug.warn("Failed to register '@apm-js-collab/tracing-hooks' hook", error); - } - }; -} diff --git a/yarn.lock b/yarn.lock index aedc5d8a8a6f..bdf0d3e8e051 100644 --- a/yarn.lock +++ b/yarn.lock @@ -378,20 +378,6 @@ dependencies: json-schema-to-ts "^3.1.1" -"@apm-js-collab/code-transformer@^0.8.0", "@apm-js-collab/code-transformer@^0.8.2": - version "0.8.2" - resolved "https://registry.yarnpkg.com/@apm-js-collab/code-transformer/-/code-transformer-0.8.2.tgz#a3160f16d1c4df9cb81303527287ad18d00994d1" - integrity sha512-YRjJjNq5KFSjDUoqu5pFUWrrsvGOxl6c3bu+uMFc9HNNptZ2rNU/TI2nLw4jnhQNtka972Ee2m3uqbvDQtPeCA== - -"@apm-js-collab/tracing-hooks@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@apm-js-collab/tracing-hooks/-/tracing-hooks-0.3.1.tgz#414d3a93c3a15d8be543a3fac561f7c602b6a588" - integrity sha512-Vu1CbmPURlN5fTboVuKMoJjbO5qcq9fA5YXpskx3dXe/zTBvjODFoerw+69rVBlRLrJpwPqSDqEuJDEKIrTldw== - dependencies: - "@apm-js-collab/code-transformer" "^0.8.0" - debug "^4.4.1" - module-details-from-path "^1.0.4" - "@apollo/cache-control-types@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@apollo/cache-control-types/-/cache-control-types-1.0.3.tgz#5da62cf64c3b4419dabfef4536b57a40c8ff0b47" From 17cec6a7f0ceb17e26fdc51443717a7ead502706 Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Mon, 16 Feb 2026 08:58:35 -0500 Subject: [PATCH 3/3] chore: add to changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b8a467f309c..17e420a5e004 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott +### Important Changes + +- fix(node-core): Reduce bundle size by removing apm-js-collab and requiring pino >= 9.10 ([#18631](https://github.com/getsentry/sentry-javascript/pull/18631)) + +In order to keep receiving pino logs, you need to update your pino version to >= 9.10, the reason for the support bump is to reduce the bundle size of the node-core SDK in frameworks that cannot tree-shake the apm-js-collab dependency. + ## 10.39.0 ### Important Changes