chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import type { LoaderFunctionArgs } from "@remix-run/server-runtime";
|
||||
import { prisma } from "~/db.server";
|
||||
import { metricsRegister } from "~/metrics.server";
|
||||
|
||||
export async function loader({ request }: LoaderFunctionArgs) {
|
||||
// If the TRIGGER_METRICS_AUTH_PASSWORD is set, we need to check if the request has the correct password in auth header
|
||||
const authPassword = process.env.TRIGGER_METRICS_AUTH_PASSWORD;
|
||||
|
||||
if (authPassword) {
|
||||
const auth = request.headers.get("Authorization");
|
||||
if (auth !== `Bearer ${authPassword}`) {
|
||||
return new Response("Unauthorized", { status: 401 });
|
||||
}
|
||||
}
|
||||
|
||||
// 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
|
||||
const metrics = prismaMetrics + coreMetrics;
|
||||
|
||||
return new Response(metrics, {
|
||||
headers: {
|
||||
"Content-Type": metricsRegister.contentType,
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user