@5app/health-check-helpers
Version:
System health check helpers
44 lines (35 loc) • 858 B
JavaScript
// Inspired by https://blog.sixeyed.com/docker-healthchecks-why-not-to-use-curl-or-iwr/
import http from 'node:http';
const {
HEALTHCHECK_PORT = 9999,
HEALTHCHECK_HOST = 'localhost',
HEALTHCHECK_TIMEOUT = 5000, // In milliseconds
HEALTHCHECK_PATH = '/',
} = process.env;
const options = {
host: HEALTHCHECK_HOST,
port: HEALTHCHECK_PORT,
path: HEALTHCHECK_PATH,
timeout: HEALTHCHECK_TIMEOUT,
};
const request = http.request(options, res => {
if (res.statusCode === 200) {
let body = '';
res.setEncoding('utf8');
res.on('data', chunk => {
body += chunk;
});
res.on('end', () => {
console.log(body); // eslint-disable-line no-console
process.exit(0);
});
}
else {
process.exit(1);
}
});
request.on('error', error => {
console.log(error.message); // eslint-disable-line no-console
process.exit(1);
});
request.end();