mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-24 01:08:31 +02:00
fix(health_monitor): treat some errors as unhealth instead of actual error in RawHealthMonitor
This commit is contained in:
@@ -3,6 +3,7 @@ package monitor
|
|||||||
import (
|
import (
|
||||||
"net"
|
"net"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/yusing/godoxy/internal/types"
|
"github.com/yusing/godoxy/internal/types"
|
||||||
@@ -33,6 +34,16 @@ func (mon *RawHealthMonitor) CheckHealth() (types.HealthCheckResult, error) {
|
|||||||
start := time.Now()
|
start := time.Now()
|
||||||
conn, err := mon.dialer.DialContext(ctx, url.Scheme, url.Host)
|
conn, err := mon.dialer.DialContext(ctx, url.Scheme, url.Host)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
errMsg := err.Error()
|
||||||
|
if strings.Contains(errMsg, "connection refused") ||
|
||||||
|
strings.Contains(errMsg, "connection reset by peer") ||
|
||||||
|
strings.Contains(errMsg, "connection closed") {
|
||||||
|
return types.HealthCheckResult{
|
||||||
|
Latency: time.Since(start),
|
||||||
|
Healthy: false,
|
||||||
|
Detail: err.Error(),
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
return types.HealthCheckResult{}, err
|
return types.HealthCheckResult{}, err
|
||||||
}
|
}
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|||||||
Reference in New Issue
Block a user