54 lines
1.9 KiB
PowerShell
54 lines
1.9 KiB
PowerShell
# Health check for all running services
|
|
$ErrorActionPreference = 'Continue'
|
|
|
|
$endpoints = @(
|
|
@{ Name = '.NET API (DYD.Api)'; Url = 'http://localhost:5443/health'; Critical = $true },
|
|
@{ Name = 'Swagger UI'; Url = 'http://localhost:5443/swagger/v1/swagger.json'; Critical = $false },
|
|
@{ Name = 'Python AI Service'; Url = 'http://localhost:4402/health'; Critical = $false },
|
|
@{ Name = 'Qdrant vector DB'; Url = 'http://localhost:6333/healthz'; Critical = $false },
|
|
@{ Name = 'fe0 (User UI)'; Url = 'http://localhost:8080'; Critical = $false },
|
|
@{ Name = 'fe-admin (Admin UI)'; Url = 'http://localhost:8082'; Critical = $false },
|
|
@{ Name = 'Ollama'; Url = 'http://localhost:11434/api/tags'; Critical = $false }
|
|
)
|
|
|
|
Write-Host ""
|
|
Write-Host "Health Check - DYD" -ForegroundColor Cyan
|
|
Write-Host ("-" * 70)
|
|
|
|
$allOk = $true
|
|
foreach ($ep in $endpoints) {
|
|
try {
|
|
$r = Invoke-WebRequest -Uri $ep.Url -UseBasicParsing -TimeoutSec 3 -ErrorAction Stop
|
|
if ($r.StatusCode -lt 400) {
|
|
$status = '[UP] '
|
|
}
|
|
else {
|
|
$status = '[DEG]'
|
|
}
|
|
Write-Host ("{0} {1,-30} -> HTTP {2}" -f $status, $ep.Name, $r.StatusCode) -ForegroundColor Green
|
|
}
|
|
catch {
|
|
if ($ep.Critical) {
|
|
$color = 'Red'
|
|
$marker = '[DOWN]'
|
|
}
|
|
else {
|
|
$color = 'DarkYellow'
|
|
$marker = '[OFF] '
|
|
}
|
|
$msg = $_.Exception.Message
|
|
Write-Host ("{0} {1,-30} -> {2}" -f $marker, $ep.Name, $msg) -ForegroundColor $color
|
|
if ($ep.Critical) { $allOk = $false }
|
|
}
|
|
}
|
|
|
|
Write-Host ("-" * 70)
|
|
if ($allOk) {
|
|
Write-Host "[OK] All critical services are running." -ForegroundColor Green
|
|
exit 0
|
|
}
|
|
else {
|
|
Write-Host "[ERROR] Some critical services are down!" -ForegroundColor Red
|
|
exit 1
|
|
}
|