Postgres.js
Adds instrumentation for the postgres (postgres.js) library.
Available since: v10.41.0
Import name: Sentry.instrumentPostgresJsSql
The instrumentPostgresJsSql helper adds instrumentation for the postgres (postgres.js) library to capture spans by wrapping a postgres.js sql tagged-template instance. You need to manually wrap your sql instance with this helper:
Copied
import postgres from "postgres";
import * as Sentry from "@sentry/cloudflare";
export default Sentry.withSentry((env) => ({ dsn: "__DSN__" }), {
async fetch(request, env, ctx) {
const sql = Sentry.instrumentPostgresJsSql(postgres(env.DATABASE_URL));
// All queries now create Sentry spans
const users = await sql`SELECT * FROM users WHERE id = ${userId}`;
return Response.json(users);
},
});
Type: boolean
Whether the instrumentation requires a parent span to create child spans. When set to true, spans are only created if there is an active parent span in the current scope.
Default: true
Type: (span: Span, sanitizedSqlQuery: string, postgresConnectionContext?: PostgresConnectionContext) => void
A hook called before each span is started. Use it to set additional attributes or modify the span.
Copied
const sql = Sentry.instrumentPostgresJsSql(postgres(env.DATABASE_URL), {
requestHook(span, query) {
span.setAttribute("custom.query", query);
},
});
Was this helpful?
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").