mirror of
https://github.com/matrix-org/mjolnir.git
synced 2024-10-01 05:36:06 +00:00
destaticify healthz
This commit is contained in:
parent
caec0e614d
commit
5407e60412
@ -16,27 +16,29 @@ limitations under the License.
|
||||
|
||||
import * as http from "http";
|
||||
import { LogService } from "matrix-bot-sdk";
|
||||
import { IConfig } from "../config";
|
||||
// allowed to use the global configuration since this is only intended to be used by `src/index.ts`.
|
||||
import config from '../config';
|
||||
|
||||
export class Healthz {
|
||||
private static healthCode: number;
|
||||
private healthCode: number;
|
||||
|
||||
public static set isHealthy(val: boolean) {
|
||||
Healthz.healthCode = val ? config.health.healthz.healthyStatus : config.health.healthz.unhealthyStatus;
|
||||
constructor(private config: IConfig) { }
|
||||
|
||||
public set isHealthy(val: boolean) {
|
||||
this.healthCode = val ? this.config.health.healthz.healthyStatus : this.config.health.healthz.unhealthyStatus;
|
||||
}
|
||||
|
||||
public static get isHealthy(): boolean {
|
||||
return Healthz.healthCode === config.health.healthz.healthyStatus;
|
||||
public get isHealthy(): boolean {
|
||||
return this.healthCode === this.config.health.healthz.healthyStatus;
|
||||
}
|
||||
|
||||
public static listen() {
|
||||
public listen() {
|
||||
const server = http.createServer((req, res) => {
|
||||
res.writeHead(Healthz.healthCode);
|
||||
res.end(`health code: ${Healthz.healthCode}`);
|
||||
res.writeHead(this.healthCode);
|
||||
res.end(`health code: ${this.healthCode}`);
|
||||
});
|
||||
server.listen(config.health.healthz.port, config.health.healthz.address, () => {
|
||||
LogService.info("Healthz", `Listening for health requests on ${config.health.healthz.address}:${config.health.healthz.port}`);
|
||||
server.listen(this.config.health.healthz.port, this.config.health.healthz.address, () => {
|
||||
LogService.info("Healthz", `Listening for health requests on ${this.config.health.healthz.address}:${this.config.health.healthz.port}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -39,9 +39,10 @@ import { patchMatrixClient } from "./utils";
|
||||
|
||||
LogService.info("index", "Starting bot...");
|
||||
|
||||
Healthz.isHealthy = false; // start off unhealthy
|
||||
const healthz = new Healthz(config);
|
||||
healthz.isHealthy = false; // start off unhealthy
|
||||
if (config.health.healthz.enabled) {
|
||||
Healthz.listen();
|
||||
healthz.listen();
|
||||
}
|
||||
|
||||
let bot: Mjolnir | null = null;
|
||||
@ -66,7 +67,7 @@ import { patchMatrixClient } from "./utils";
|
||||
}
|
||||
try {
|
||||
await bot.start();
|
||||
Healthz.isHealthy = true;
|
||||
healthz.isHealthy = true;
|
||||
} catch (err) {
|
||||
console.error(`Mjolnir failed to start: ${err}`);
|
||||
throw err;
|
||||
|
Loading…
Reference in New Issue
Block a user