Files
projects/Dockers/xtream-proxy/src/health.js
T
Bram a4b85162ab
Build and Push Docker Images / build-and-push (push) Successful in 23s
better connection counting
2026-11-04 11:20:20 +01:00

29 lines
809 B
JavaScript

'use strict';
const { settings } = require('./settings');
const { getUpstreams } = require('./config');
const {
getLastProbeAt,
rankedUpstreams,
describeUpstream,
totalConnectionCapacity,
} = require('./upstream-pool');
function healthPayload() {
const upstreams = getUpstreams();
const ranked = rankedUpstreams();
const selected = ranked.find((entry) => !entry.busy) || ranked[0] || null;
return {
ok: upstreams.some((upstream) => upstream.state.healthy),
configFile: settings.configFile,
probeIntervalSec: settings.probeIntervalSec,
lastProbeAt: getLastProbeAt(),
maxConnections: totalConnectionCapacity(),
selected: selected ? describeUpstream(selected.upstream) : null,
upstreams: upstreams.map(describeUpstream),
};
}
module.exports = { healthPayload };