mirror of
https://github.com/Sithranduil/srcds_exporter.git
synced 2025-07-22 23:28:26 +02:00
65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
import prometheus from 'prom-client';
|
|
import utils from '../utils/utils.js';
|
|
|
|
const csgoRegistry = new prometheus.Registry();
|
|
const gmodRegistry = new prometheus.Registry();
|
|
const cstrikeRegistry = new prometheus.Registry();
|
|
const cs2Registry = new prometheus.Registry();
|
|
const allGameMetrics = [
|
|
csgoRegistry,
|
|
gmodRegistry,
|
|
cstrikeRegistry,
|
|
cs2Registry,
|
|
];
|
|
|
|
export default {
|
|
csgoRegistry,
|
|
gmodRegistry,
|
|
cstrikeRegistry,
|
|
cs2Registry,
|
|
allGameMetrics,
|
|
|
|
setDefaultLabels(ip, port, game, tags, metamodResponse, sourcemodResponse, sourcepythonResponse) {
|
|
const defaultLabels = { server: `${ip}:${port}`, game, tags };
|
|
if (metamodResponse && utils.isValidResponse(metamodResponse)) {
|
|
let line = utils.getLine(metamodResponse);
|
|
if (line === ' Metamod:Source Version Information') {
|
|
line = utils.getLine(metamodResponse, 2);
|
|
}
|
|
const version = line.replace('Metamod:Source version ', '').trim();
|
|
defaultLabels.metamod = version;
|
|
}
|
|
if (sourcemodResponse && utils.isValidResponse(sourcemodResponse)) {
|
|
const line = utils.getLine(sourcemodResponse, 2);
|
|
const version = line.replace(' SourceMod Version: ', '').trim();
|
|
defaultLabels.sourcemod = version;
|
|
}
|
|
if (sourcepythonResponse && utils.isValidResponse(sourcepythonResponse)) {
|
|
const line = utils.getLine(sourcepythonResponse, 8);
|
|
const version = line.replace('SP version : ', '').trim();
|
|
defaultLabels.sourcepython = version;
|
|
}
|
|
if (game === 'cs2') {
|
|
cs2Registry.setDefaultLabels(defaultLabels);
|
|
} else if (game === 'csgo') {
|
|
csgoRegistry.setDefaultLabels(defaultLabels);
|
|
} else if (game === 'cstrike') {
|
|
cstrikeRegistry.setDefaultLabels(defaultLabels);
|
|
} else if (game === 'gmod') {
|
|
gmodRegistry.setDefaultLabels(defaultLabels);
|
|
}
|
|
},
|
|
|
|
sendMetrics(game, res) {
|
|
if (game === 'cs2') {
|
|
res.end(cs2Registry.metrics());
|
|
} else if (game === 'csgo') {
|
|
res.end(csgoRegistry.metrics());
|
|
} else if (game === 'cstrike') {
|
|
res.end(cstrikeRegistry.metrics());
|
|
} else if (game === 'gmod') {
|
|
res.end(gmodRegistry.metrics());
|
|
}
|
|
},
|
|
};
|