code: public String getMetricIdentifier(String metricName, CharacterFilter filter, int reporterIndex) {
  		if (scopeStrings.length == 0 || (reporterIndex < 0 || reporterIndex >= scopeStrings.length)) {
  			char delimiter = registry.getDelimiter();
  			String newScopeString;
  			if (filter != null) {
  				newScopeString = ScopeFormat.concat(filter, delimiter, scopeComponents);
  				metricName = filter.filterCharacters(metricName);
  			} else {
  				newScopeString = ScopeFormat.concat(delimiter, scopeComponents);
  			}
  			return newScopeString + delimiter + metricName;
  		} else {
  			char delimiter = registry.getDelimiter(reporterIndex);
  			if (scopeStrings[reporterIndex] == null) {
  				if (filter != null) {
  					scopeStrings[reporterIndex] = ScopeFormat.concat(filter, delimiter, scopeComponents);
  				} else {
  					scopeStrings[reporterIndex] = ScopeFormat.concat(delimiter, scopeComponents);
  				}
  			}
  			if (filter != null) {
  				metricName = filter.filterCharacters(metricName);
  			}
  			return scopeStrings[reporterIndex] + delimiter + metricName;
  		}
  	}
docs: Returns the fully qualified metric name using the configured delimiter for the reporter with the given index, for example
  {@code "host-7.taskmanager-2.window_word_count.my-mapper.metricName"}.
  
  @param metricName metric name
  @param filter character filter which is applied to the scope components if not null.
  @param reporterIndex index of the reporter whose delimiter should be used
  @return fully qualified metric name