'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 };