Skip to content

Instantly share code, notes, and snippets.

@statico
Created September 12, 2023 23:10
Show Gist options
  • Save statico/379d0f460405a9f25176d0b48ac98ea6 to your computer and use it in GitHub Desktop.
Save statico/379d0f460405a9f25176d0b48ac98ea6 to your computer and use it in GitHub Desktop.
Configure Sentry performance tracing because the default integration doesn't work
// Configure Sentry performance tracing because the default Postgres integration doesn't work with Knex:
// https://github.com/getsentry/sentry-javascript/blob/main/packages/tracing-internal/src/node/integrations/postgres.ts
const sentrySpans = new Map<string, Span>()
db.on("query", (query: any) => {
const span = Sentry.getActiveSpan()?.startChild({
op: "db.query",
description: query.sql,
})
if (span) sentrySpans.set(query.__knexQueryUid, span)
})
db.on("query-error", (err, query) => {
const span = sentrySpans.get(query.__knexQueryUid)
if (span) span.finish()
})
db.on("query-response", (err, query) => {
const span = sentrySpans.get(query.__knexQueryUid)
if (span) span.finish()
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment