code: func NewGauge(opts GaugeOpts) Gauge {
  	desc := NewDesc(
  		BuildFQName(opts.Namespace, opts.Subsystem, opts.Name),
  		opts.Help,
  		nil,
  		opts.ConstLabels,
  	)
  	result := &gauge{desc: desc, labelPairs: desc.constLabelPairs}
  	result.init(result) // Init self-collection.
  	return result
  }
docs: // NewGauge creates a new Gauge based on the provided GaugeOpts.
  //
  // The returned implementation is optimized for a fast Set method. If you have a
  // choice for managing the value of a Gauge via Set vs. Inc/Dec/Add/Sub, pick
  // the former. For example, the Inc method of the returned Gauge is slower than
  // the Inc method of a Counter returned by NewCounter. This matches the typical
  // scenarios for Gauges and Counters, where the former tends to be Set-heavy and
  // the latter Inc-heavy.