diff --git a/apps/discord-server/.d.ts b/apps/core-server/.d.ts similarity index 100% rename from apps/discord-server/.d.ts rename to apps/core-server/.d.ts diff --git a/apps/discord-server/.dockerignore b/apps/core-server/.dockerignore similarity index 100% rename from apps/discord-server/.dockerignore rename to apps/core-server/.dockerignore diff --git a/apps/discord-server/.env.example b/apps/core-server/.env.example similarity index 100% rename from apps/discord-server/.env.example rename to apps/core-server/.env.example diff --git a/apps/discord-server/Dockerfile b/apps/core-server/Dockerfile similarity index 90% rename from apps/discord-server/Dockerfile rename to apps/core-server/Dockerfile index c8f26d91..cb4b7608 100644 --- a/apps/discord-server/Dockerfile +++ b/apps/core-server/Dockerfile @@ -16,7 +16,7 @@ COPY . . RUN ls -lh -RUN turbo prune discord-server --docker +RUN turbo prune core-server --docker FROM base AS installer RUN apk update @@ -47,4 +47,4 @@ COPY --from=installer --chown=nextjs:nodejs /usr/app/ ./ # Expose the application port EXPOSE 3003 -CMD ["pnpm", "--dir", "apps/discord-server", "run", "start"] \ No newline at end of file +CMD ["pnpm", "--dir", "apps/core-server", "run", "start"] \ No newline at end of file diff --git a/apps/discord-server/index.ts b/apps/core-server/index.ts similarity index 100% rename from apps/discord-server/index.ts rename to apps/core-server/index.ts diff --git a/apps/discord-server/modules/discord.ts b/apps/core-server/modules/discord.ts similarity index 100% rename from apps/discord-server/modules/discord.ts rename to apps/core-server/modules/discord.ts diff --git a/apps/dispatch-server/modules/prometheus.ts b/apps/core-server/modules/prometheus.ts similarity index 68% rename from apps/dispatch-server/modules/prometheus.ts rename to apps/core-server/modules/prometheus.ts index 43c914b6..a4a642eb 100644 --- a/apps/dispatch-server/modules/prometheus.ts +++ b/apps/core-server/modules/prometheus.ts @@ -4,18 +4,6 @@ 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", @@ -44,7 +32,5 @@ export const connectedDispatcher = new promClient.Gauge({ }, }); -promRegister.registerMetric(socketConnections); -promRegister.registerMetric(aircraftPatches); promRegister.registerMetric(connectedPilots); promRegister.registerMetric(connectedDispatcher); diff --git a/apps/discord-server/nodemon.json b/apps/core-server/nodemon.json similarity index 100% rename from apps/discord-server/nodemon.json rename to apps/core-server/nodemon.json diff --git a/apps/discord-server/package.json b/apps/core-server/package.json similarity index 93% rename from apps/discord-server/package.json rename to apps/core-server/package.json index 93ac4140..8004f5b2 100644 --- a/apps/discord-server/package.json +++ b/apps/core-server/package.json @@ -1,5 +1,5 @@ { - "name": "discord-server", + "name": "core-server", "exports": { "helpers": "./helper" }, @@ -28,6 +28,7 @@ "express": "^5.1.0", "node-cron": "^4.1.0", "nodemon": "^3.1.10", + "prom-client": "^15.1.3", "react": "^19.1.0", "tsx": "^4.19.4" } diff --git a/apps/discord-server/routes/helper.ts b/apps/core-server/routes/helper.ts similarity index 100% rename from apps/discord-server/routes/helper.ts rename to apps/core-server/routes/helper.ts diff --git a/apps/discord-server/routes/member.ts b/apps/core-server/routes/member.ts similarity index 100% rename from apps/discord-server/routes/member.ts rename to apps/core-server/routes/member.ts diff --git a/apps/dispatch-server/routes/metrics.ts b/apps/core-server/routes/metrics.ts similarity index 100% rename from apps/dispatch-server/routes/metrics.ts rename to apps/core-server/routes/metrics.ts diff --git a/apps/discord-server/routes/report.ts b/apps/core-server/routes/report.ts similarity index 100% rename from apps/discord-server/routes/report.ts rename to apps/core-server/routes/report.ts diff --git a/apps/discord-server/routes/router.ts b/apps/core-server/routes/router.ts similarity index 78% rename from apps/discord-server/routes/router.ts rename to apps/core-server/routes/router.ts index fe42e391..71de815f 100644 --- a/apps/discord-server/routes/router.ts +++ b/apps/core-server/routes/router.ts @@ -2,11 +2,13 @@ import { Router } from "express"; import memberRouter from "./member"; import helperRouter from "./helper"; import reportRouter from "./report"; +import { metricsRouter } from "routes/metrics"; const router: Router = Router(); router.use("/member", memberRouter); router.use("/helper", helperRouter); router.use("/report", reportRouter); +router.use("/metrics", metricsRouter); export default router; diff --git a/apps/discord-server/tsconfig.json b/apps/core-server/tsconfig.json similarity index 100% rename from apps/discord-server/tsconfig.json rename to apps/core-server/tsconfig.json diff --git a/apps/dispatch-server/.env.example b/apps/dispatch-server/.env.example index d117b33b..e47830a1 100644 --- a/apps/dispatch-server/.env.example +++ b/apps/dispatch-server/.env.example @@ -1,7 +1,7 @@ DISPATCH_SERVER_PORT=3002 REDIS_HOST=localhost REDIS_PORT=6379 -DISCORD_SERVER_URL=http://discord-server +DISCORD_SERVER_URL=http://core-server DISPATCH_APP_TOKEN=dispatch LIVEKIT_API_KEY=APIAnsGdtdYp2Ho LIVEKIT_API_SECRET=tdPjVsYUx8ddC7K9NvdmVAeLRF9GeADD6Fedm1x63fWC \ No newline at end of file diff --git a/apps/dispatch-server/index.ts b/apps/dispatch-server/index.ts index 53fcb9b4..9147703c 100644 --- a/apps/dispatch-server/index.ts +++ b/apps/dispatch-server/index.ts @@ -14,7 +14,6 @@ import cookieParser from "cookie-parser"; import cors from "cors"; import { authMiddleware } from "modules/expressMiddleware"; import "modules/chron"; -import { socketConnections } from "modules/prometheus"; const app = express(); const server = createServer(app); @@ -26,10 +25,6 @@ export const io = new Server(server, { io.use(jwtMiddleware); io.on("connection", (socket) => { - socketConnections.inc(); - socket.on("disconnect", () => { - socketConnections.dec(); - }); socket.on("connect-dispatch", handleConnectDispatch(socket, io)); socket.on("connect-pilot", handleConnectPilot(socket, io)); socket.on("connect-desktop", handleConnectDesktop(socket, io)); diff --git a/apps/dispatch-server/routes/router.ts b/apps/dispatch-server/routes/router.ts index 8c292222..7d75a3c1 100644 --- a/apps/dispatch-server/routes/router.ts +++ b/apps/dispatch-server/routes/router.ts @@ -4,7 +4,6 @@ import missionRouter from "./mission"; import statusRouter from "./status"; import aircraftsRouter from "./aircraft"; import reportRouter from "./report"; -import { metricsRouter } from "routes/metrics"; const router: Router = Router(); @@ -13,6 +12,5 @@ router.use("/mission", missionRouter); router.use("/status", statusRouter); router.use("/aircrafts", aircraftsRouter); router.use("/report", reportRouter); -router.use("/metrics", metricsRouter); export default router; diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 9c02ffeb..5269eb83 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -3,7 +3,7 @@ networks: driver: bridge postgres_network: driver: bridge - discord_network: + core_network: driver: bridge redis_network: driver: bridge @@ -37,7 +37,7 @@ services: env_file: - .env.prod networks: - - discord_network + - core_network - postgres_network - traefik @@ -56,7 +56,7 @@ services: env_file: - .env.prod networks: - - discord_network + - core_network - postgres_network - traefik depends_on: @@ -109,7 +109,7 @@ services: - "traefik.http.services.dispatch-server.loadBalancer.sticky.cookie.httpOnly=true" - "traefik.http.services.dispatch-server.loadbalancer.server.port=3000" networks: - - discord_network + - core_network - postgres_network - redis_network - traefik @@ -118,7 +118,20 @@ services: condition: service_healthy redis: condition: service_healthy - + cadvisor: + image: gcr.io/cadvisor/cadvisor:latest + container_name: cadvisor + ports: + - "8080:8080" + volumes: + - /:/rootfs:ro + - /var/run:/var/run:ro + - /sys:/sys:ro + - /var/lib/docker/:/var/lib/docker:ro + networks: + - traefik + - core_network + restart: unless-stopped prometheus: image: prom/prometheus:latest container_name: prometheus @@ -131,11 +144,12 @@ services: - "--config.file=/etc/prometheus/prometheus.yml" networks: - traefik + - core_network - discord-server: + core-server: build: context: . - dockerfile: ./apps/discord-server/Dockerfile + dockerfile: ./apps/core-server/Dockerfile env_file: - .env.prod deploy: @@ -144,7 +158,7 @@ services: - "traefik.enable=false" networks: - postgres_network - - discord_network + - core_network docs: build: diff --git a/packages/prometheus/prometheus.prod.yml b/packages/prometheus/prometheus.prod.yml index 4baa4a44..4d7d9a6e 100644 --- a/packages/prometheus/prometheus.prod.yml +++ b/packages/prometheus/prometheus.prod.yml @@ -2,28 +2,9 @@ global: scrape_interval: 40s scrape_configs: - - job_name: "docker-containers" - metrics_path: /metrics - docker_sd_configs: - - host: unix:///var/run/docker.sock - role: container - relabel_configs: - # Nur Container mit Label prometheus.scrape=true - - source_labels: [__meta_docker_container_label_prometheus_scrape] - regex: "true" - action: keep - - # Nur Container mit geöffnetem Port 3000 berücksichtigen - - source_labels: [__meta_docker_container_port_private] - regex: "3000" - action: keep - - # Zieladresse auf Port 3000 setzen - - source_labels: [__address__] - regex: "(.*):\\d+" - target_label: __address__ - replacement: "${1}:3000" - - # Container-Name als Job-Label - - source_labels: [__meta_docker_container_name] - target_label: container + - job_name: core-server + static_configs: + - targets: ["core-server"] + - job_name: cadvisor + static_configs: + - targets: ["cadvisor:8080"] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2f0a728c..4623d587 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,7 +18,7 @@ importers: specifier: ^5.8.3 version: 5.8.3 - apps/discord-server: + apps/core-server: dependencies: axios: specifier: ^1.9.0 @@ -44,6 +44,9 @@ importers: nodemon: specifier: ^3.1.10 version: 3.1.10 + prom-client: + specifier: ^15.1.3 + version: 15.1.3 react: specifier: ^19.1.0 version: 19.1.0