func NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec {
	desc := NewDesc(
		BuildFQName(opts.Namespace, opts.Subsystem, opts.Name),
		opts.Help,
		labelNames,
		opts.ConstLabels,
	)
	return &GaugeVec{
		MetricVec: MetricVec{
			children: map[uint64]Metric{},
			desc:     desc,
			newMetric: func(lvs ...string) Metric {
				return newValue(desc, GaugeValue, 0, lvs...)
			},
		},
	}
}
NewGaugeVec creates a new GaugeVec based on the provided GaugeOpts and
partitioned by the given label names. At least one label name must be
provided.
package prometheus
type Gauge interface {
	Metric
	Collector
	Set(float64)
	Inc()
	Dec()
	Add(float64)
	Sub(float64)
}
type GaugeOpts Opts
func NewGauge(opts GaugeOpts) Gauge {
	return newValue(NewDesc(
		BuildFQName(opts.Namespace, opts.Subsystem, opts.Name),
		opts.Help,
		nil,
		opts.ConstLabels,
	), GaugeValue, 0)
}
type GaugeVec struct {
	MetricVec
}