docs: @Override
  	public Collection<Instance> getInstanceList() throws Exception {
  		List<Instance> instances = new ArrayList<>();
  		List<String> appNames = getApplications();
  		if (appNames == null || appNames.size() == 0) {
  			log.info("No apps configured, returning an empty instance list");
  			return instances;
  		}
  		log.info("Fetching instance list for apps: " + appNames);
  		for (String appName : appNames) {
  			try {
  				instances.addAll(getInstancesForApp(appName));
  			}
  			catch (Exception ex) {
  				log.error("Failed to fetch instances for app: " + appName
  						+ ", retrying once more", ex);
  				try {
  					instances.addAll(getInstancesForApp(appName));
  				}
  				catch (Exception retryException) {
  					log.error("Failed again to fetch instances for app: " + appName
  							+ ", giving up", ex);
  				}
  			}
  		}
  		return instances;
  	}