From be5729294b3f700520fbbec32a1b6c7785c7ab50 Mon Sep 17 00:00:00 2001 From: Jake Kasper Date: Thu, 21 Aug 2025 10:01:57 -0500 Subject: [PATCH] update health checks --- backend/healthcheck.js | 36 ++++++++++++++++++++++++++------- frontend/healthcheck.js | 44 ++++++++++++++++++++++++++++++----------- 2 files changed, 62 insertions(+), 18 deletions(-) diff --git a/backend/healthcheck.js b/backend/healthcheck.js index 7b799a9..5dbac6b 100644 --- a/backend/healthcheck.js +++ b/backend/healthcheck.js @@ -1,28 +1,50 @@ const http = require('http'); +console.log(`[${new Date().toISOString()}] Backend health check starting...`); + const options = { hostname: 'localhost', port: 5000, path: '/health', method: 'GET', - timeout: 2000 + timeout: 5000 }; +console.log(`[${new Date().toISOString()}] Checking: http://${options.hostname}:${options.port}${options.path}`); + const req = http.request(options, (res) => { - if (res.statusCode === 200) { - process.exit(0); - } else { - process.exit(1); - } + console.log(`[${new Date().toISOString()}] Response status: ${res.statusCode}`); + + let data = ''; + res.on('data', chunk => { + data += chunk; + }); + + res.on('end', () => { + console.log(`[${new Date().toISOString()}] Response body:`, data); + + if (res.statusCode === 200) { + console.log(`[${new Date().toISOString()}] Health check PASSED`); + process.exit(0); + } else { + console.log(`[${new Date().toISOString()}] Health check FAILED - bad status code`); + process.exit(1); + } + }); }); -req.on('error', () => { +req.on('error', (err) => { + console.log(`[${new Date().toISOString()}] Health check ERROR:`, err.message); + console.log(`[${new Date().toISOString()}] Error code:`, err.code); + console.log(`[${new Date().toISOString()}] Error details:`, err); process.exit(1); }); req.on('timeout', () => { + console.log(`[${new Date().toISOString()}] Health check TIMEOUT after ${options.timeout}ms`); req.destroy(); process.exit(1); }); +req.setTimeout(options.timeout); req.end(); \ No newline at end of file diff --git a/frontend/healthcheck.js b/frontend/healthcheck.js index e1b1a8b..385d430 100644 --- a/frontend/healthcheck.js +++ b/frontend/healthcheck.js @@ -1,33 +1,55 @@ const http = require('http'); +console.log(`[${new Date().toISOString()}] Frontend health check starting...`); + const options = { hostname: 'localhost', port: 3000, path: '/', method: 'GET', - timeout: 3000 + timeout: 8000 }; +console.log(`[${new Date().toISOString()}] Checking: http://${options.hostname}:${options.port}${options.path}`); + const req = http.request(options, (res) => { - // Accept any 2xx or 3xx status code (React dev server might redirect) - if (res.statusCode >= 200 && res.statusCode < 400) { - console.log('Health check passed'); - process.exit(0); - } else { - console.log(`Health check failed with status: ${res.statusCode}`); - process.exit(1); - } + console.log(`[${new Date().toISOString()}] Response status: ${res.statusCode}`); + console.log(`[${new Date().toISOString()}] Response headers:`, JSON.stringify(res.headers, null, 2)); + + let data = ''; + res.on('data', chunk => { + data += chunk; + }); + + res.on('end', () => { + console.log(`[${new Date().toISOString()}] Response body length: ${data.length} bytes`); + console.log(`[${new Date().toISOString()}] Response snippet:`, data.substring(0, 200)); + + // Accept any 2xx or 3xx status code (React dev server might redirect) + if (res.statusCode >= 200 && res.statusCode < 400) { + console.log(`[${new Date().toISOString()}] Health check PASSED`); + process.exit(0); + } else { + console.log(`[${new Date().toISOString()}] Health check FAILED - status: ${res.statusCode}`); + process.exit(1); + } + }); }); req.on('error', (err) => { - console.log('Health check error:', err.message); + console.log(`[${new Date().toISOString()}] Health check ERROR:`, err.message); + console.log(`[${new Date().toISOString()}] Error code:`, err.code); + console.log(`[${new Date().toISOString()}] Error syscall:`, err.syscall); + console.log(`[${new Date().toISOString()}] Error address:`, err.address); + console.log(`[${new Date().toISOString()}] Error port:`, err.port); process.exit(1); }); req.on('timeout', () => { - console.log('Health check timeout'); + console.log(`[${new Date().toISOString()}] Health check TIMEOUT after ${options.timeout}ms`); req.destroy(); process.exit(1); }); +req.setTimeout(options.timeout); req.end(); \ No newline at end of file