Amélioration de la métric srcds_players et ajout des metrics srcds_bots et srcds_max_players

This commit is contained in:
2020-11-06 22:50:16 +01:00
parent 6e96c465b2
commit c13e7ee467
2 changed files with 42 additions and 4 deletions

View File

@@ -2,6 +2,44 @@ import utils from '../utils/utils.js';
import metrics from './metrics.js';
export default {
async requestStatus(client, game) {
const stats = await utils.rconCommand(client, 'status');
let statusLine = null;
let res = null;
if (stats) {
statusLine = stats.split(/\r?\n/);
} else {
return null;
}
statusLine.shift();
statusLine.shift();
statusLine.shift();
statusLine.shift();
statusLine.shift();
statusLine.shift();
if (game === 'csgo') {
if (statusLine[0].search('gotv') !== -1) {
statusLine.shift();
}
res = statusLine[0].split(/players : (\d+) humans, (\d+) bots \((\d+)\/0 max\)/);
} else {
res = statusLine[0].split(/players : (\d+) humans, (\d+) bots \((\d+) max\)/);
}
res.pop();
res.shift();
return res;
},
setStatusMetrics(response) {
let players = 0;
let bots = 0;
let maxPlayers = 0;
if (response) {
[players, bots, maxPlayers] = response;
}
metrics.players.set((Number(players)));
metrics.bots.set((Number(bots)));
metrics.maxPlayers.set((Number(maxPlayers)));
},
async requestStats(client, game) {
const stats = await utils.rconCommand(client, 'stats');
let statusLine = null;
@@ -29,12 +67,11 @@ export default {
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;
[cpu, netin, netout, uptime, maps, fps, , svms, varms] = response;
}
if (game === 'csgo') {
metrics.status.set((Number(status)));
@@ -44,7 +81,6 @@ export default {
metrics.uptime.set((Number(uptime)));
metrics.maps.set((Number(maps)));
metrics.fps.set((Number(fps)));
metrics.players.set((Number(players)));
metrics.svms.set((Number(svms)));
metrics.varms.set((Number(varms)));
} else {
@@ -55,7 +91,6 @@ export default {
metrics.uptime.set((Number(uptime)));
metrics.maps.set((Number(maps)));
metrics.fps.set((Number(fps)));
metrics.players.set((Number(players)));
}
},
async requeseInfo(client) {

View File

@@ -12,6 +12,7 @@ export default {
const infoResponse = await game.requeseInfo(client, config.game);
const statsResponse = await game.requestStats(client, config.game);
const statusResponse = await game.requestStatus(client, config.game);
if (config.metamod) {
metamodResponse = await metamod.request(client);
}
@@ -24,6 +25,7 @@ export default {
return {
info: infoResponse,
stats: statsResponse,
status: statusResponse,
metamod: metamodResponse,
sourcemod: sourcemodResponse,
sourcepython: sourcepythonResponse,
@@ -36,6 +38,7 @@ export default {
sourcepython.setMetrics(response ? response.sourcepython : null);
game.setStatsMetrics(response ? response.stats : null, config.game);
game.setInfoMetrics(response ? response.info : null);
game.setStatusMetrics(response ? response.status : null);
registry.setDefaultLabels(
config.ip,