prometheus + load-testing

This commit is contained in:
PxlLoewe
2025-06-28 16:05:44 -07:00
parent 246ce0ce22
commit 453cf9a414
20 changed files with 8171 additions and 404 deletions

View File

@@ -0,0 +1,50 @@
import { prisma } from "@repo/db";
import promClient from "prom-client";
export const promRegister = new promClient.Registry();
promClient.collectDefaultMetrics({ register: promRegister });
export const socketConnections = new promClient.Gauge({
name: "socket_connections",
help: "Number of active socket connections",
registers: [promRegister],
});
export const aircraftPatches = new promClient.Counter({
name: "aircraft_patches",
help: "Counts patch requests for aircrafts",
registers: [promRegister],
});
export const connectedPilots = new promClient.Gauge({
name: "connected_pilots",
help: "Counts connected pilots",
registers: [promRegister],
collect: async () => {
const count = await prisma.connectedAircraft.count({
where: {
logoutTime: null,
},
});
connectedPilots.set(count);
},
});
export const connectedDispatcher = new promClient.Gauge({
name: "connected_dispatcher",
help: "Counts connected dispatchers",
registers: [promRegister],
collect: async () => {
const count = await prisma.connectedDispatcher.count({
where: {
logoutTime: null,
},
});
connectedDispatcher.set(count);
},
});
promRegister.registerMetric(socketConnections);
promRegister.registerMetric(aircraftPatches);
promRegister.registerMetric(connectedPilots);
promRegister.registerMetric(connectedDispatcher);

View File

@@ -5,7 +5,7 @@ import jwt from "jsonwebtoken";
export const jwtMiddleware = async (socket: Socket, next: (err?: ExtendedError) => void) => {
try {
const { uid } = socket.handshake.auth;
const uid = socket.handshake.auth.uid || socket.handshake.query.uid;
if (!uid) return new Error("Authentication error");
/* const token = socket.handshake.auth?.token;
if (!token) return new Error("Authentication error");