mirror of
https://github.com/Sithranduil/srcds_exporter.git
synced 2025-07-23 17:28:00 +02:00
Handle when the server is off
This commit is contained in:
17
index.js
17
index.js
@@ -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);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user