From d7b473cf9aece9247c82f6e585ff7bfcbee3b229 Mon Sep 17 00:00:00 2001 From: nicktrn <55853254+nicktrn@users.noreply.github.com> Date: Thu, 29 May 2025 09:47:56 +0100 Subject: [PATCH 1/2] ensure eof marker is always at the end --- apps/webapp/app/routes/metrics.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/webapp/app/routes/metrics.ts b/apps/webapp/app/routes/metrics.ts index ab193509683..b73472a319f 100644 --- a/apps/webapp/app/routes/metrics.ts +++ b/apps/webapp/app/routes/metrics.ts @@ -16,7 +16,10 @@ export async function loader({ request }: LoaderFunctionArgs) { const prismaMetrics = await prisma.$metrics.prometheus(); const coreMetrics = await metricsRegister.metrics(); - return new Response(coreMetrics + prismaMetrics, { + // Order matters, core metrics end with `# EOF`, prisma metrics don't + const metrics = prismaMetrics + coreMetrics; + + return new Response(metrics, { headers: { "Content-Type": metricsRegister.contentType, }, From a1bb0235666a60c989be590004f9831c6d4af375 Mon Sep 17 00:00:00 2001 From: nicktrn <55853254+nicktrn@users.noreply.github.com> Date: Thu, 29 May 2025 09:48:43 +0100 Subject: [PATCH 2/2] strip empty lines from prisma metrics --- apps/webapp/app/routes/metrics.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/webapp/app/routes/metrics.ts b/apps/webapp/app/routes/metrics.ts index b73472a319f..f5e9931e662 100644 --- a/apps/webapp/app/routes/metrics.ts +++ b/apps/webapp/app/routes/metrics.ts @@ -13,7 +13,8 @@ export async function loader({ request }: LoaderFunctionArgs) { } } - const prismaMetrics = await prisma.$metrics.prometheus(); + // We need to remove empty lines from the prisma metrics, grafana doesn't like them + const prismaMetrics = (await prisma.$metrics.prometheus()).replace(/^\s*[\r\n]/gm, ""); const coreMetrics = await metricsRegister.metrics(); // Order matters, core metrics end with `# EOF`, prisma metrics don't