private JMXConnector connectWithTimeout(final JMXServiceURL jmxUrl, int timeout) throws NGrinderRuntimeException, TimeoutException {
        try {
            ExecutorService executor = Executors.newSingleThreadExecutor();
            Future<JMXConnector> future = executor.submit(() -> JMXConnectorFactory.connect(jmxUrl));

            return future.get(timeout, TimeUnit.MILLISECONDS);
        } catch (TimeoutException e) {
            throw e;
        } catch (Exception e) {
            throw processException(e);
        }

    }
get the monitor object of the object name and attribute name. See
{@link org.ngrinder.monitor.domain.MonitorCollectionInfoDomain}.

@param objName  is the object name of the object in JMX MBean server.
@param attrName is the attribute name
@return the monitor object from MBean
@throws Exception wraps all JMX related exception
ngrinder-core/src/main/java/org/ngrinder/monitor/share/domain/MBeanClient.java