mirror of
https://github.com/Sithranduil/srcds_exporter.git
synced 2025-07-22 23:28:26 +02:00
Amélioration de la métric srcds_players et ajout des metrics srcds_bots et srcds_max_players
This commit is contained in:
@@ -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) {
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user