syslog-portal
Version:
A portal for ingesting syslog data
80 lines • 3.15 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
import { inject, injectable, postConstruct, preDestroy } from 'inversify';
import { createServer, } from 'node:http';
import { TYPES } from '../types.js';
let HealthMonitor = class HealthMonitor {
_entities = new Map();
_expectedCheckInIntervals = new Map();
_entityCheckIn = new Map();
_log;
_server;
constructor(log) {
this._log = log;
}
start() {
this._log.info('Starting health ep server');
this._server = createServer(this.requestHandler);
this._server.listen(8080, '0.0.0.0');
this._log.info('Finished starting health ep server');
return Promise.resolve();
}
requestHandler(req, resp) {
resp.writeHead(200);
resp.end();
}
async stop() {
this._log.info('Closing health ep server');
if (this._server != null) {
await new Promise((resolve, reject) => {
this._server?.close((err) => {
if (err)
reject(err);
resolve(null);
});
});
}
this._log.info('Finished closing health ep server');
}
register(entityId, humanReadableName, expectedCheckInInterval) {
this._entities.set(entityId, humanReadableName);
this._expectedCheckInIntervals.set(entityId, expectedCheckInInterval);
}
unregister(entityId) {
this._entities.delete(entityId);
this._expectedCheckInIntervals.delete(entityId);
this._entityCheckIn.delete(entityId);
}
kick(entityId) {
this._entityCheckIn.set(entityId, Date.now());
}
};
__decorate([
postConstruct(),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", Promise)
], HealthMonitor.prototype, "start", null);
__decorate([
preDestroy(),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", Promise)
], HealthMonitor.prototype, "stop", null);
HealthMonitor = __decorate([
injectable(),
__param(0, inject(TYPES.Logger)),
__metadata("design:paramtypes", [Object])
], HealthMonitor);
export { HealthMonitor };
//# sourceMappingURL=healthMonitor.js.map