diff --git a/packages/node/package.json b/packages/node/package.json index bfe1acb03a48..6ffe71f06fc3 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -95,7 +95,7 @@ "@opentelemetry/resources": "^1.30.1", "@opentelemetry/sdk-trace-base": "^1.30.1", "@opentelemetry/semantic-conventions": "^1.30.0", - "@prisma/instrumentation": "6.6.0", + "@prisma/instrumentation": "6.7.0", "@sentry/core": "9.15.0", "@sentry/opentelemetry": "9.15.0", "import-in-the-middle": "^1.13.0" diff --git a/packages/node/src/integrations/tracing/index.ts b/packages/node/src/integrations/tracing/index.ts index e07a247d7d34..99a85b3514f8 100644 --- a/packages/node/src/integrations/tracing/index.ts +++ b/packages/node/src/integrations/tracing/index.ts @@ -15,6 +15,7 @@ import { instrumentMongoose, mongooseIntegration } from './mongoose'; import { instrumentMysql, mysqlIntegration } from './mysql'; import { instrumentMysql2, mysql2Integration } from './mysql2'; import { instrumentPostgres, postgresIntegration } from './postgres'; +import { prismaIntegration } from './prisma'; import { instrumentRedis, redisIntegration } from './redis'; import { instrumentTedious, tediousIntegration } from './tedious'; import { instrumentVercelAi, vercelAIIntegration } from './vercelai'; @@ -33,10 +34,7 @@ export function getAutoPerformanceIntegrations(): Integration[] { mysql2Integration(), redisIntegration(), postgresIntegration(), - // For now, we do not include prisma by default because it has ESM issues - // See https://github.com/prisma/prisma/issues/23410 - // TODO v8: Figure out a better solution for this, maybe only disable in ESM mode? - // prismaIntegration(), + prismaIntegration(), hapiIntegration(), koaIntegration(), connectIntegration(), diff --git a/packages/node/src/integrations/tracing/prisma.ts b/packages/node/src/integrations/tracing/prisma.ts index 58c0a8019cd8..c674e0bfdfbe 100644 --- a/packages/node/src/integrations/tracing/prisma.ts +++ b/packages/node/src/integrations/tracing/prisma.ts @@ -1,6 +1,5 @@ import type { Instrumentation } from '@opentelemetry/instrumentation'; -// When importing CJS modules into an ESM module, we cannot import the named exports directly. -import * as prismaInstrumentation from '@prisma/instrumentation'; +import { PrismaInstrumentation } from '@prisma/instrumentation'; import { consoleSandbox, defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, spanToJSON } from '@sentry/core'; import { generateInstrumentOnce } from '../../otel/instrument'; import type { PrismaV5TracingHelper } from './prisma/vendor/v5-tracing-helper'; @@ -8,11 +7,6 @@ import type { PrismaV6TracingHelper } from './prisma/vendor/v6-tracing-helper'; const INTEGRATION_NAME = 'Prisma'; -const EsmInteropPrismaInstrumentation: typeof prismaInstrumentation.PrismaInstrumentation = - // @ts-expect-error We need to do the following for interop reasons - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - prismaInstrumentation.default?.PrismaInstrumentation || prismaInstrumentation.PrismaInstrumentation; - type CompatibilityLayerTraceHelper = PrismaV5TracingHelper & PrismaV6TracingHelper; function isPrismaV6TracingHelper(helper: unknown): helper is PrismaV6TracingHelper { @@ -31,7 +25,7 @@ function getPrismaTracingHelper(): unknown | undefined { return prismaTracingHelper; } -class SentryPrismaInteropInstrumentation extends EsmInteropPrismaInstrumentation { +class SentryPrismaInteropInstrumentation extends PrismaInstrumentation { public constructor() { super(); } diff --git a/yarn.lock b/yarn.lock index 334e255ebb3b..938d89058a83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5860,10 +5860,10 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== -"@prisma/instrumentation@6.6.0": - version "6.6.0" - resolved "https://registry.yarnpkg.com/@prisma/instrumentation/-/instrumentation-6.6.0.tgz#5b73164c722bcfcd29c43cb883b4735143b65eb2" - integrity sha512-M/a6njz3hbf2oucwdbjNKrSMLuyMCwgDrmTtkF1pm4Nm7CU45J/Hd6lauF2CDACTUYzu3ymcV7P0ZAhIoj6WRw== +"@prisma/instrumentation@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@prisma/instrumentation/-/instrumentation-6.7.0.tgz#5fd97be1f89e9d9268148424a812deaea491f80a" + integrity sha512-3NuxWlbzYNevgPZbV0ktA2z6r0bfh0g22ONTxcK09a6+6MdIPjHsYx1Hnyu4yOq+j7LmupO5J69hhuOnuvj8oQ== dependencies: "@opentelemetry/instrumentation" "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0"