refactor(http): enhance health check error logic by treating all 5xx as unhealthy

This commit is contained in:
yusing
2025-12-17 12:24:04 +08:00
parent b49d565213
commit 4299c78067

View File

@@ -62,8 +62,7 @@ func (mon *HTTPHealthMonitor) CheckHealth() (types.HealthCheckResult, error) {
respErr := pinger.DoTimeout(req, resp, mon.config.Timeout)
lat := time.Since(start)
switch {
case respErr != nil:
if respErr != nil {
// treat TLS error as healthy
var tlsErr *tls.CertificateVerificationError
if ok := errors.As(respErr, &tlsErr); !ok {
@@ -72,7 +71,9 @@ func (mon *HTTPHealthMonitor) CheckHealth() (types.HealthCheckResult, error) {
Detail: respErr.Error(),
}, nil
}
case resp.StatusCode() == fasthttp.StatusServiceUnavailable:
}
if status := resp.StatusCode(); status >= 500 && status < 600 {
return types.HealthCheckResult{
Latency: lat,
Detail: fasthttp.StatusMessage(resp.StatusCode()),