code: func (v *GaugeVec) GetMetricWithLabelValues(lvs ...string) (Gauge, error) {
  	metric, err := v.metricVec.getMetricWithLabelValues(lvs...)
  	if metric != nil {
  		return metric.(Gauge), err
  	}
  	return nil, err
  }
docs: // GetMetricWithLabelValues returns the Gauge for the given slice of label
  // values (same order as the VariableLabels in Desc). If that combination of
  // label values is accessed for the first time, a new Gauge is created.
  //
  // It is possible to call this method without using the returned Gauge to only
  // create the new Gauge but leave it at its starting value 0. See also the
  // SummaryVec example.
  //
  // Keeping the Gauge for later use is possible (and should be considered if
  // performance is critical), but keep in mind that Reset, DeleteLabelValues and
  // Delete can be used to delete the Gauge from the GaugeVec. In that case, the
  // Gauge will still exist, but it will not be exported anymore, even if a
  // Gauge with the same label values is created later. See also the CounterVec
  // example.
  //
  // An error is returned if the number of label values is not the same as the
  // number of VariableLabels in Desc (minus any curried labels).
  //
  // Note that for more than one label value, this method is prone to mistakes
  // caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as
  // an alternative to avoid that type of mistake. For higher label numbers, the
  // latter has a much more readable (albeit more verbose) syntax, but it comes
  // with a performance overhead (for creating and processing the Labels map).