Files
speckle-server/packages/server/logging/httpServerMonitoring.js
T
2022-04-29 00:39:32 +03:00

31 lines
878 B
JavaScript

/* istanbul ignore file */
/* eslint-disable no-unused-vars */
'use strict'
const prometheusClient = require('prom-client')
let metricActiveConnections = null
module.exports = {
monitorActiveConnections(httpServer) {
if (metricActiveConnections !== null) {
prometheusClient.register.removeSingleMetric('speckle_server_active_connections')
}
metricActiveConnections = new prometheusClient.Gauge({
name: 'speckle_server_active_connections',
help: 'Number of active http connections',
async collect() {
let connectionCount = await new Promise((resolve, reject) => {
httpServer.getConnections(function (error, count) {
if (error) resolve(-1)
else resolve(count)
})
})
if (isNaN(connectionCount)) connectionCount = -1
this.set(connectionCount)
}
})
}
}