mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-21 10:10:55 +00:00
add region to worker metrics
This commit is contained in:
@@ -98,6 +98,7 @@ export interface ServerConfig {
|
||||
workerPort(gameID: GameID): number;
|
||||
workerPortByIndex(workerID: number): number;
|
||||
env(): GameEnv;
|
||||
region(): string;
|
||||
adminToken(): string;
|
||||
adminHeader(): string;
|
||||
// Only available on the server
|
||||
|
||||
@@ -23,6 +23,12 @@ import { pastelTheme } from "./PastelTheme";
|
||||
import { pastelThemeDark } from "./PastelThemeDark";
|
||||
|
||||
export abstract class DefaultServerConfig implements ServerConfig {
|
||||
region(): string {
|
||||
if (this.env() == GameEnv.Dev) {
|
||||
return "dev";
|
||||
}
|
||||
return process.env.REGION;
|
||||
}
|
||||
gitCommit(): string {
|
||||
return process.env.GIT_COMMIT;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
import promClient from "prom-client";
|
||||
import { GameManager } from "./GameManager";
|
||||
import { getServerConfigFromServer } from "../core/configuration/Config";
|
||||
|
||||
const config = getServerConfigFromServer();
|
||||
const region = config.region();
|
||||
|
||||
// Initialize the Prometheus registry
|
||||
const register = new promClient.Registry();
|
||||
@@ -11,18 +15,21 @@ promClient.collectDefaultMetrics({ register });
|
||||
const activeGamesGauge = new promClient.Gauge({
|
||||
name: "openfont_active_games_count",
|
||||
help: "Number of active games on this worker",
|
||||
labelNames: ["region"],
|
||||
registers: [register],
|
||||
});
|
||||
|
||||
const connectedClientsGauge = new promClient.Gauge({
|
||||
name: "openfont_connected_clients_count",
|
||||
help: "Number of connected clients on this worker",
|
||||
labelNames: ["region"],
|
||||
registers: [register],
|
||||
});
|
||||
|
||||
const memoryUsageGauge = new promClient.Gauge({
|
||||
name: "openfont_memory_usage_bytes",
|
||||
help: "Current memory usage of the worker process in bytes",
|
||||
labelNames: ["region"],
|
||||
registers: [register],
|
||||
});
|
||||
|
||||
@@ -35,11 +42,11 @@ export const metrics = {
|
||||
|
||||
// Function to update game-related metrics
|
||||
updateGameMetrics: (gameManager: GameManager) => {
|
||||
activeGamesGauge.set(gameManager.activeGames());
|
||||
connectedClientsGauge.set(gameManager.activeClients());
|
||||
activeGamesGauge.set({ region: region }, gameManager.activeGames());
|
||||
connectedClientsGauge.set({ region: region }, gameManager.activeClients());
|
||||
|
||||
// Update memory usage metrics
|
||||
const memoryUsage = process.memoryUsage();
|
||||
memoryUsageGauge.set(memoryUsage.heapUsed);
|
||||
memoryUsageGauge.set({ region: region }, memoryUsage.heapUsed);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -3,6 +3,9 @@ import { GameMapType } from "../../src/core/game/Game";
|
||||
import { GameID } from "../../src/core/Schemas";
|
||||
|
||||
export class TestServerConfig implements ServerConfig {
|
||||
region(): string {
|
||||
return "test";
|
||||
}
|
||||
turnIntervalMs(): number {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user