fix: remove HEAD-based site checker that caused false DOWN status
The checkAllSitesAvailability() function did HEAD requests from EasyPanel to check sites. Many WordPress sites block HEAD or return errors, causing all sites to show as DOWN while keeping valid response times from the CWP collector. The CWP collector (collect-sites.sh) is the single source of truth for site status. Removed: - checkSiteAvailability() and checkAllSitesAvailability() from monitoring service - POST /api/monitor/check-sites endpoint - api/scripts/check-sites.ts cron script Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
#!/usr/bin/env npx tsx
|
||||
/**
|
||||
* Site Availability Checker Script
|
||||
* Run via cron every 5-15 minutes to check if sites are online
|
||||
*
|
||||
* Usage:
|
||||
* npx tsx api/scripts/check-sites.ts
|
||||
*
|
||||
* Cron example (every 10 minutes):
|
||||
* 0,10,20,30,40,50 * * * * cd /path/to/DashDescomplicar && npx tsx api/scripts/check-sites.ts
|
||||
*
|
||||
* @author Descomplicar | @link descomplicar.pt | @copyright 2026
|
||||
*/
|
||||
import 'dotenv/config'
|
||||
import { checkAllSitesAvailability } from '../services/monitoring.js'
|
||||
|
||||
async function main() {
|
||||
const startTime = Date.now()
|
||||
console.log(`[${new Date().toISOString()}] Starting site availability check...`)
|
||||
|
||||
try {
|
||||
const result = await checkAllSitesAvailability()
|
||||
|
||||
console.log(`[${new Date().toISOString()}] Check completed:`)
|
||||
console.log(` - Sites checked: ${result.checked}`)
|
||||
console.log(` - Up: ${result.up}`)
|
||||
console.log(` - Down: ${result.down}`)
|
||||
|
||||
// Log any down sites
|
||||
const downSites = result.results.filter(r => !r.available)
|
||||
if (downSites.length > 0) {
|
||||
console.log(` - Down sites:`)
|
||||
for (const site of downSites) {
|
||||
console.log(` - ${site.name}: ${site.error || 'No response'}`)
|
||||
}
|
||||
}
|
||||
|
||||
const elapsed = Date.now() - startTime
|
||||
console.log(`[${new Date().toISOString()}] Done in ${elapsed}ms`)
|
||||
|
||||
// Exit with code 1 if any sites are down (useful for alerting)
|
||||
process.exit(downSites.length > 0 ? 1 : 0)
|
||||
|
||||
} catch (error) {
|
||||
console.error(`[${new Date().toISOString()}] Error:`, error)
|
||||
process.exit(2)
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user