@ima/server
Version:
Default dev server for IMA.js applications.
26 lines (21 loc) • 568 B
JavaScript
const { Metric } = require('@esmj/monitor');
class ConcurrentRequestsMetric extends Metric {
#instanceRecycler;
constructor(instanceRecycler) {
super();
this.#instanceRecycler = instanceRecycler;
}
measure() {
return {
concurrentRequests: {
count: this.#instanceRecycler.getConcurrentRequests(),
hasNextInstance: this.#instanceRecycler.hasNextInstance(),
},
};
}
}
module.exports = function concurrentRequestsMetricFactory({
instanceRecycler,
}) {
return new ConcurrentRequestsMetric(instanceRecycler);
};