src/index.ts (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import { performance } from "node:perf_hooks";
performance.mark("startup-begin");
import log from "loglevel";
import { server, metricsServer } from "./app";
log.setLevel((import.meta.env["LOG_LEVEL"] || "info") as log.LogLevelDesc);
const metricsServed = Bun.serve(metricsServer);
log.info(`Metrics server started on port ${metricsServed.port}`);
const served = Bun.serve(server);
log.info(`Serving website on ${served.url}`);
process.on("SIGTERM", function () {
log.info("SIGTERM received, shutting down...");
metricsServed.stop();
served.stop();
process.exit(0);
});
process.on("SIGINT", function () {
log.info("SIGINT received, shutting down...");
metricsServed.stop();
served.stop();
process.exit(0);
});
performance.mark("startup-end");
performance.measure("startup", "startup-begin", "startup-end");
for (const entry of performance.getEntriesByName("startup")) {
log.info(`Startup took ${entry.duration} ms`);
}
|