mirror of
https://github.com/Sithranduil/srcds_exporter.git
synced 2025-07-23 17:28:00 +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';
|
import metrics from './metrics.js';
|
||||||
|
|
||||||
export default {
|
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) {
|
async requestStats(client, game) {
|
||||||
const stats = await utils.rconCommand(client, 'stats');
|
const stats = await utils.rconCommand(client, 'stats');
|
||||||
let statusLine = null;
|
let statusLine = null;
|
||||||
@@ -29,12 +67,11 @@ export default {
|
|||||||
let uptime = 0;
|
let uptime = 0;
|
||||||
let maps = 0;
|
let maps = 0;
|
||||||
let fps = 0;
|
let fps = 0;
|
||||||
let players = 0;
|
|
||||||
let svms = 0;
|
let svms = 0;
|
||||||
let varms = 0;
|
let varms = 0;
|
||||||
if (response) {
|
if (response) {
|
||||||
status = 1;
|
status = 1;
|
||||||
[cpu, netin, netout, uptime, maps, fps, players, svms, varms] = response;
|
[cpu, netin, netout, uptime, maps, fps, , svms, varms] = response;
|
||||||
}
|
}
|
||||||
if (game === 'csgo') {
|
if (game === 'csgo') {
|
||||||
metrics.status.set((Number(status)));
|
metrics.status.set((Number(status)));
|
||||||
@@ -44,7 +81,6 @@ export default {
|
|||||||
metrics.uptime.set((Number(uptime)));
|
metrics.uptime.set((Number(uptime)));
|
||||||
metrics.maps.set((Number(maps)));
|
metrics.maps.set((Number(maps)));
|
||||||
metrics.fps.set((Number(fps)));
|
metrics.fps.set((Number(fps)));
|
||||||
metrics.players.set((Number(players)));
|
|
||||||
metrics.svms.set((Number(svms)));
|
metrics.svms.set((Number(svms)));
|
||||||
metrics.varms.set((Number(varms)));
|
metrics.varms.set((Number(varms)));
|
||||||
} else {
|
} else {
|
||||||
@@ -55,7 +91,6 @@ export default {
|
|||||||
metrics.uptime.set((Number(uptime)));
|
metrics.uptime.set((Number(uptime)));
|
||||||
metrics.maps.set((Number(maps)));
|
metrics.maps.set((Number(maps)));
|
||||||
metrics.fps.set((Number(fps)));
|
metrics.fps.set((Number(fps)));
|
||||||
metrics.players.set((Number(players)));
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async requeseInfo(client) {
|
async requeseInfo(client) {
|
||||||
|
@@ -12,6 +12,7 @@ export default {
|
|||||||
|
|
||||||
const infoResponse = await game.requeseInfo(client, config.game);
|
const infoResponse = await game.requeseInfo(client, config.game);
|
||||||
const statsResponse = await game.requestStats(client, config.game);
|
const statsResponse = await game.requestStats(client, config.game);
|
||||||
|
const statusResponse = await game.requestStatus(client, config.game);
|
||||||
if (config.metamod) {
|
if (config.metamod) {
|
||||||
metamodResponse = await metamod.request(client);
|
metamodResponse = await metamod.request(client);
|
||||||
}
|
}
|
||||||
@@ -24,6 +25,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
info: infoResponse,
|
info: infoResponse,
|
||||||
stats: statsResponse,
|
stats: statsResponse,
|
||||||
|
status: statusResponse,
|
||||||
metamod: metamodResponse,
|
metamod: metamodResponse,
|
||||||
sourcemod: sourcemodResponse,
|
sourcemod: sourcemodResponse,
|
||||||
sourcepython: sourcepythonResponse,
|
sourcepython: sourcepythonResponse,
|
||||||
@@ -36,6 +38,7 @@ export default {
|
|||||||
sourcepython.setMetrics(response ? response.sourcepython : null);
|
sourcepython.setMetrics(response ? response.sourcepython : null);
|
||||||
game.setStatsMetrics(response ? response.stats : null, config.game);
|
game.setStatsMetrics(response ? response.stats : null, config.game);
|
||||||
game.setInfoMetrics(response ? response.info : null);
|
game.setInfoMetrics(response ? response.info : null);
|
||||||
|
game.setStatusMetrics(response ? response.status : null);
|
||||||
|
|
||||||
registry.setDefaultLabels(
|
registry.setDefaultLabels(
|
||||||
config.ip,
|
config.ip,
|
||||||
|
Reference in New Issue
Block a user