Skip to content

Prisma 8 support for prismaIntegration #24237

Description

@chargome

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:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions