prometheus + load-testing
This commit is contained in:
50
apps/dispatch-server/modules/prometheus.ts
Normal file
50
apps/dispatch-server/modules/prometheus.ts
Normal 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);
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user