Prisma 8 ("Prisma Next", @prisma/orm-postgres, currently 8.0.0-rc.8) ships no tracing surface. It never reads the global PRISMA_INSTRUMENTATION helper, so prismaIntegration is inert. Only raw pg spans from postgresIntegration remain: one flat db span per statement, plus Prisma's marker-verification and BEGIN/COMMIT housekeeping queries as siblings. The v7 span tree (prisma:client:operation with model/method, serialize, connect, nested db_query) is gone.
Goal: roughly the same spans on Prisma 8 as on v7.
Approach: instrument via orchestrion, like the other server-utils integrations. No user code needed, works with the runtime loader hook and the bundler plugins.
- Patch the
CollectionImpl methods (create, createAll, upsert, update, updateAll, delete, deleteAll, all, first, count, aggregate) in @prisma/orm-family-sql/dist/orm-client.mjs for prisma:client:operation (origin auto.db.prisma, model/method attributes).
- Patch
execute(plan, options) on the runtime base class in @prisma/orm-family-sql/dist/runtime.mjs so the pg query spans nest under the operation. The plan carries meta.lane and annotations.
- No
serialize span. connect only if the lazy pool creation in @prisma/orm-postgres/dist/runtime.mjs is patchable cleanly.
- Wire it through
prismaIntegration so @sentry/node and @sentry/cloudflare/nodejs_compat stay the entry points.
Scope:
- Orchestrion config + channel subscriber for the above.
- Extend
dev-packages/node-integration-tests/suites/tracing/prisma-orm-v8 (currently pins the inert behaviour) to assert the v7-shaped tree.
- Docs:
prismaIntegration JSDoc and Sentry docs say "v6 and v7"; add v8.
Risks / constraints:
- Patch points live in
@prisma/orm-family-sql, a transitive dependency. The two files are unhashed, but versionRange must be pinned tightly and revisited at 8.0 stable.
.all() returns a thenable that only runs the query when awaited; check the Auto kind's promise handling against that shape.
- Prisma's marker-verification and
BEGIN/COMMIT statements will nest under the operation span, unlike v7.
- v8 CLI needs Node ≥22.18;
DateTime columns decode to Temporal (global only on Node 26).
References:
Prisma 8 ("Prisma Next",
@prisma/orm-postgres, currently 8.0.0-rc.8) ships no tracing surface. It never reads the globalPRISMA_INSTRUMENTATIONhelper, soprismaIntegrationis inert. Only rawpgspans frompostgresIntegrationremain: one flatdbspan per statement, plus Prisma's marker-verification andBEGIN/COMMIThousekeeping queries as siblings. The v7 span tree (prisma:client:operationwithmodel/method,serialize,connect, nesteddb_query) is gone.Goal: roughly the same spans on Prisma 8 as on v7.
Approach: instrument via orchestrion, like the other server-utils integrations. No user code needed, works with the runtime loader hook and the bundler plugins.
CollectionImplmethods (create,createAll,upsert,update,updateAll,delete,deleteAll,all,first,count,aggregate) in@prisma/orm-family-sql/dist/orm-client.mjsforprisma:client:operation(originauto.db.prisma,model/methodattributes).execute(plan, options)on the runtime base class in@prisma/orm-family-sql/dist/runtime.mjsso thepgquery spans nest under the operation. The plan carriesmeta.laneand annotations.serializespan.connectonly if the lazy pool creation in@prisma/orm-postgres/dist/runtime.mjsis patchable cleanly.prismaIntegrationso@sentry/nodeand@sentry/cloudflare/nodejs_compatstay the entry points.Scope:
dev-packages/node-integration-tests/suites/tracing/prisma-orm-v8(currently pins the inert behaviour) to assert the v7-shaped tree.prismaIntegrationJSDoc and Sentry docs say "v6 and v7"; add v8.Risks / constraints:
@prisma/orm-family-sql, a transitive dependency. The two files are unhashed, butversionRangemust be pinned tightly and revisited at 8.0 stable..all()returns a thenable that only runs the query when awaited; check theAutokind's promise handling against that shape.BEGIN/COMMITstatements will nest under the operation span, unlike v7.DateTimecolumns decode toTemporal(global only on Node 26).References: