reactor-core/src/main/java/reactor/core/publisher/FluxMetrics.java
static Tuple2<String, List<Tag>> resolveNameAndTags(Publisher<?> source) {
		//resolve the tags and names at instantiation
		String name;
		List<Tag> tags;

		Scannable scannable = Scannable.from(source);
		if (scannable.isScanAvailable()) {
			String nameOrDefault = scannable.name();
			if (scannable.stepName().equals(nameOrDefault)) {
				name = REACTOR_DEFAULT_NAME;
			}
			else {
				name = nameOrDefault;
			}
			tags = scannable.tags()
			                .map(tuple -> Tag.of(tuple.getT1(), tuple.getT2()))
			                .collect(Collectors.toList());
		}
		else {
			LOGGER.warn("Attempting to activate metrics but the upstream is not Scannable. " +
					"You might want to use `name()` (and optionally `tags()`) right before `metrics()`");
			name = REACTOR_DEFAULT_NAME;
			tags = Collections.emptyList();
		}

		return Tuples.of(name, tags);
	}
static Tuple2<String, List<Tag>> resolveNameAndTags(Publisher<?> source) {
		//resolve the tags and names at instantiation
		String name;
		List<Tag> tags;

		Scannable scannable = Scannable.from(source);
		if (scannable.isScanAvailable()) {
			String nameOrDefault = scannable.name();
			if (scannable.stepName().equals(nameOrDefault)) {
				name = REACTOR_DEFAULT_NAME;
			}
			else {
				name = nameOrDefault;
			}
			tags = scannable.tags()
			                .map(tuple -> Tag.of(tuple.getT1(), tuple.getT2()))
			                .collect(Collectors.toList());
		}
		else {
			LOGGER.warn("Attempting to activate metrics but the upstream is not Scannable. " +
					"You might want to use `name()` (and optionally `tags()`) right before `metrics()`");
			name = REACTOR_DEFAULT_NAME;
			tags = Collections.emptyList();
		}

		return Tuples.of(name, tags);
	}
static Tuple2 < String , List < Tag > > resolveNameAndTags ( Publisher < ? > source ) { //resolve the tags and names at instantiation String name ; List < Tag > tags ; Scannable scannable = Scannable . from ( source ) ; if ( scannable . isScanAvailable ( ) ) { String nameOrDefault = scannable . name ( ) ; if ( scannable . stepName ( ) . equals ( nameOrDefault ) ) { name = REACTOR_DEFAULT_NAME ; } else { name = nameOrDefault ; } tags = scannable . tags ( ) . map ( tuple -> Tag . of ( tuple . getT1 ( ) , tuple . getT2 ( ) ) ) . collect ( Collectors . toList ( ) ) ; } else { LOGGER . warn ( "Attempting to activate metrics but the upstream is not Scannable. " + "You might want to use `name()` (and optionally `tags()`) right before `metrics()`" ) ; name = REACTOR_DEFAULT_NAME ; tags = Collections . emptyList ( ) ; } return Tuples . of ( name , tags ) ; }
Extract the name and tags from the upstream, and detect if there was an actual name
(ie. distinct from {@link Scannable#stepName()}) set by the user.

@param source the upstream
@return a {@link Tuple2} of name and list of {@link Tag}
Extract the name and tags from the upstream and detect if there was an actual name ( ie . distinct from { @link Scannable#stepName () } ) set by the user .