docs: def labels(self, *labelvalues, **labelkwargs):
          """Return the child for the given labelset.
  
          All metrics can have labels, allowing grouping of related time series.
          Taking a counter as an example:
  
              from prometheus_client import Counter
  
              c = Counter('my_requests_total', 'HTTP Failures', ['method', 'endpoint'])
              c.labels('get', '/').inc()
              c.labels('post', '/submit').inc()
  
          Labels can also be provided as keyword arguments:
  
              from prometheus_client import Counter
  
              c = Counter('my_requests_total', 'HTTP Failures', ['method', 'endpoint'])
              c.labels(method='get', endpoint='/').inc()
              c.labels(method='post', endpoint='/submit').inc()
  
          See the best practices on [naming](http://prometheus.io/docs/practices/naming/)
          and [labels](http://prometheus.io/docs/practices/instrumentation/#use-labels).
          """
          if not self._labelnames:
              raise ValueError('No label names were set when constructing %s' % self)
  
          if self._labelvalues:
              raise ValueError('%s already has labels set (%s); can not chain calls to .labels()' % (
                  self,
                  dict(zip(self._labelnames, self._labelvalues))
              ))
  
          if labelvalues and labelkwargs:
              raise ValueError("Can't pass both *args and **kwargs")
  
          if labelkwargs:
              if sorted(labelkwargs) != sorted(self._labelnames):
                  raise ValueError('Incorrect label names')
              labelvalues = tuple(unicode(labelkwargs[l]) for l in self._labelnames)
          else:
              if len(labelvalues) != len(self._labelnames):
                  raise ValueError('Incorrect label count')
              labelvalues = tuple(unicode(l) for l in labelvalues)
          with self._lock:
              if labelvalues not in self._metrics:
                  self._metrics[labelvalues] = self.__class__(
                      self._name,
                      documentation=self._documentation,
                      labelnames=self._labelnames,
                      unit=self._unit,
                      labelvalues=labelvalues,
                      **self._kwargs
                  )
              return self._metrics[labelvalues]