code: func (f *factory) nameAndTagsList(nom string, tags map[string]string) (name string, tagsList []string) {
  	mergedTags := f.mergeTags(tags)
  	name = f.subScope(nom)
  	tagsList = f.tagsList(mergedTags)
  	if len(tagsList) == 0 || f.factory.Capabilities().Tagging {
  		return
  	}
  	name = metrics.GetKey(name, mergedTags, f.tagsSep, f.tagKVSep)
  	tagsList = nil
  	return
  }
docs: // nameAndTagsList returns a name and tags list for the new metrics.
  // The name is a concatenation of nom and the current factory scope.
  // The tags list is a flattened list of passed tags merged with factory tags.
  // If the underlying factory does not support tags, then the tags are
  // transformed into a string and appended to the name.