code: @Override
  	public void open(MetricConfig config) {
  		String portsConfig = config.getString(ARG_PORT, null);
  
  		if (portsConfig != null) {
  			Iterator<Integer> ports = NetUtils.getPortRangeFromString(portsConfig);
  
  			JMXServer server = new JMXServer();
  			while (ports.hasNext()) {
  				int port = ports.next();
  				try {
  					server.start(port);
  					LOG.info("Started JMX server on port " + port + ".");
  					// only set our field if the server was actually started
  					jmxServer = server;
  					break;
  				} catch (IOException ioe) { //assume port conflict
  					LOG.debug("Could not start JMX server on port " + port + ".", ioe);
  					try {
  						server.stop();
  					} catch (Exception e) {
  						LOG.debug("Could not stop JMX server.", e);
  					}
  				}
  			}
  			if (jmxServer == null) {
  				throw new RuntimeException("Could not start JMX server on any configured port. Ports: " + portsConfig);
  			}
  		}
  		LOG.info("Configured JMXReporter with {port:{}}", portsConfig);
  	}
docs: ------------------------------------------------------------------------