code: func (r *Reader) LabelNames() ([]string, error) {
  	labelNamesMap := make(map[string]struct{}, len(r.labels))
  	for key := range r.labels {
  		// 'key' contains the label names concatenated with the
  		// delimiter 'labelNameSeperator'.
  		names := strings.Split(key, labelNameSeperator)
  		for _, name := range names {
  			if name == allPostingsKey.Name {
  				// This is not from any metric.
  				// It is basically an empty label name.
  				continue
  			}
  			labelNamesMap[name] = struct{}{}
  		}
  	}
  	labelNames := make([]string, 0, len(labelNamesMap))
  	for name := range labelNamesMap {
  		labelNames = append(labelNames, name)
  	}
  	sort.Strings(labelNames)
  	return labelNames, nil
  }
docs: // LabelNames returns all the unique label names present in the index.