Handle when the server is off

This commit is contained in:
2020-10-25 20:33:58 +01:00
parent d86369cfc8
commit 9a7e2179b6
3 changed files with 47 additions and 45 deletions

View File

@@ -46,22 +46,7 @@ app.get('/metrics', async (req, res) => {
} else { } else {
console.error(e); console.error(e);
} }
// status.set((Number(0))); await module.send(config, null, res, true);
// cpu.set((Number(0)));
// netin.set((Number(0)));
// netout.set((Number(0)));
// uptime.set((Number(0)));
// maps.set((Number(0)));
// fps.set((Number(0)));
// players.set((Number(0)));
// svms.set((Number(0)));
// varms.set((Number(0)));
// svMaxUpdateRate.set((Number(0)));
// metamodEnabledGauge.set((Number(-1)));
// sourcemodEnabledGauge.set((Number(-1)));
// sourcepythonEnabledGauge.set((Number(-1)));
// prepareData(ip, port, game, tags);
// sendData(game, res);
} }
}); });

View File

@@ -22,37 +22,54 @@ export default {
return statusLine; return statusLine;
}, },
setStatsMetrics(response, game) { setStatsMetrics(response, game) {
let status = 0;
let cpu = 0;
let netin = 0;
let netout = 0;
let uptime = 0;
let maps = 0;
let fps = 0;
let players = 0;
let svms = 0;
let varms = 0;
if (response) {
status = 1;
[cpu, netin, netout, uptime, maps, fps, players, svms, varms] = response;
}
if (game === 'csgo') { if (game === 'csgo') {
metrics.status.set((Number(1))); metrics.status.set((Number(status)));
metrics.cpu.set((Number(response[0]))); metrics.cpu.set((Number(cpu)));
metrics.netin.set((Number(response[1]))); metrics.netin.set((Number(netin)));
metrics.netout.set((Number(response[2]))); metrics.netout.set((Number(netout)));
metrics.uptime.set((Number(response[3]))); metrics.uptime.set((Number(uptime)));
metrics.maps.set((Number(response[4]))); metrics.maps.set((Number(maps)));
metrics.fps.set((Number(response[5]))); metrics.fps.set((Number(fps)));
metrics.players.set((Number(response[6]))); metrics.players.set((Number(players)));
metrics.svms.set((Number(response[7]))); metrics.svms.set((Number(svms)));
metrics.varms.set((Number(response[8]))); metrics.varms.set((Number(varms)));
} else { } else {
metrics.status.set((Number(1))); metrics.status.set((Number(status)));
metrics.cpu.set((Number(response[0]))); metrics.cpu.set((Number(cpu)));
metrics.netin.set((Number(response[1]))); metrics.netin.set((Number(netin)));
metrics.netout.set((Number(response[2]))); metrics.netout.set((Number(netout)));
metrics.uptime.set((Number(response[3]))); metrics.uptime.set((Number(uptime)));
metrics.maps.set((Number(response[4]))); metrics.maps.set((Number(maps)));
metrics.fps.set((Number(response[5]))); metrics.fps.set((Number(fps)));
metrics.players.set((Number(response[6]))); metrics.players.set((Number(players)));
} }
}, },
async requeseInfo(client, game) { async requeseInfo(client) {
const maxUpdateRate = await utils.rconCommand(client, 'sv_maxupdaterate'); const maxUpdateRate = await utils.rconCommand(client, 'sv_maxupdaterate');
return { return {
sv_maxupdaterate: maxUpdateRate, sv_maxupdaterate: maxUpdateRate,
}; };
}, },
setInfoMetrics(response) { setInfoMetrics(response) {
const maxUpdateRate = utils.parseCvar(response.sv_maxupdaterate); let maxUpdateRate = 0;
metrics.svMaxUpdateRate.set((Number(maxUpdateRate.value))); if (response) {
maxUpdateRate = utils.parseCvar(response.sv_maxupdaterate).value;
}
metrics.svMaxUpdateRate.set((Number(maxUpdateRate)));
return true; return true;
}, },
}; };

View File

@@ -31,20 +31,20 @@ export default {
}, },
async send(config, response, res) { async send(config, response, res) {
metamod.setMetrics(response.metamod); metamod.setMetrics(response ? response.metamod : null);
sourcemod.setMetrics(response.sourcemod); sourcemod.setMetrics(response ? response.sourcemod : null);
sourcepython.setMetrics(response.sourcepython); sourcepython.setMetrics(response ? response.sourcepython : null);
game.setStatsMetrics(response.stats, config.game); game.setStatsMetrics(response ? response.stats : null, config.game);
game.setInfoMetrics(response.info); game.setInfoMetrics(response ? response.info : null);
registry.setDefaultLabels( registry.setDefaultLabels(
config.ip, config.ip,
config.port, config.port,
config.game, config.game,
config.tags, config.tags,
response.metamod, response ? response.metamod : null,
response.sourcemod, response ? response.sourcemod : null,
response.sourcepython, response ? response.sourcepython : null,
); );
registry.sendMetrics(config.game, res); registry.sendMetrics(config.game, res);