in main/health.go [102:121]
func (p *TcpHealthProbe) evaluate(lg *slog.Logger) (ProbeResponse, error) {
conn, err := net.DialTimeout("tcp", p.address(), 30*time.Second)
var probeResponse ProbeResponse
if err != nil {
probeResponse.ApplicationHealthState = Unhealthy
return probeResponse, err
}
tcpConn, ok := conn.(*net.TCPConn)
if !ok {
probeResponse.ApplicationHealthState = Unhealthy
return probeResponse, errUnableToConvertType
}
tcpConn.SetLinger(0)
tcpConn.Close()
probeResponse.ApplicationHealthState = Healthy
return probeResponse, nil
}