From fea9c16515ef4a0c5506fddf18e1587020bb4d14 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sat, 15 Nov 2025 00:19:13 +0100 Subject: [PATCH] Instrument drizzle --- api/bun.lock | 3 +++ api/package.json | 1 + api/src/db/index.ts | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/api/bun.lock b/api/bun.lock index e2d61965..b05616ce 100644 --- a/api/bun.lock +++ b/api/bun.lock @@ -7,6 +7,7 @@ "dependencies": { "@elysiajs/opentelemetry": "^1.4.6", "@elysiajs/swagger": "zoriya/elysia-swagger#build", + "@kubiks/otel-drizzle": "^2.1.0", "@types/bun": "^1.3.1", "blurhash": "^2.0.5", "drizzle-kit": "^0.31.5", @@ -162,6 +163,8 @@ "@js-sdsl/ordered-map": ["@js-sdsl/ordered-map@4.4.2", "", {}, "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw=="], + "@kubiks/otel-drizzle": ["@kubiks/otel-drizzle@2.1.0", "", { "peerDependencies": { "@opentelemetry/api": ">=1.9.0 <2.0.0", "drizzle-orm": ">=0.28.0" } }, "sha512-9UHb0od3jwa6zTWMyEYPIZcUq5PDaziCmQLMLakSK2zeqy12SFZ3SAGWXJTgEr8valn/Wa+DKVs+Z3aqKQUpvg=="], + "@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="], "@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.200.0", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-IKJBQxh91qJ+3ssRly5hYEJ8NDHu9oY/B1PXVSCWf7zytmYO9RNLB0Ox9XQ/fJ8m6gY6Q6NtBWlmXfaXt5Uc4Q=="], diff --git a/api/package.json b/api/package.json index 694cc3bb..68362cb6 100644 --- a/api/package.json +++ b/api/package.json @@ -11,6 +11,7 @@ "dependencies": { "@elysiajs/opentelemetry": "^1.4.6", "@elysiajs/swagger": "zoriya/elysia-swagger#build", + "@kubiks/otel-drizzle": "^2.1.0", "@types/bun": "^1.3.1", "blurhash": "^2.0.5", "drizzle-kit": "^0.31.5", diff --git a/api/src/db/index.ts b/api/src/db/index.ts index e8969cae..d19588ec 100644 --- a/api/src/db/index.ts +++ b/api/src/db/index.ts @@ -1,6 +1,7 @@ import os from "node:os"; import path from "node:path"; import tls, { type ConnectionOptions } from "node:tls"; +import { instrumentDrizzleClient } from "@kubiks/otel-drizzle"; import { sql } from "drizzle-orm"; import { drizzle } from "drizzle-orm/node-postgres"; import { migrate as migrateDb } from "drizzle-orm/node-postgres/migrator"; @@ -114,6 +115,9 @@ export const db = drizzle({ connection: postgresConfig, casing: "snake_case", }); +instrumentDrizzleClient(db, { + maxQueryTextLength: 100_000_000, +}); export const migrate = async () => { try {