 dd9309c15e
			
		
	
	dd9309c15e
	
	
	
		
			
			Initial vendor list validated with empty $GOPATH and only master checked out; followed by `make` and verified that all binaries build properly. Updates require github.com/LK4D4/vndr tool. Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package metrics
 | |
| 
 | |
| import "github.com/prometheus/client_golang/prometheus"
 | |
| 
 | |
| // Gauge is a metric that allows incrementing and decrementing a value
 | |
| type Gauge interface {
 | |
| 	Inc(...float64)
 | |
| 	Dec(...float64)
 | |
| 
 | |
| 	// Add adds the provided value to the gauge's current value
 | |
| 	Add(float64)
 | |
| 
 | |
| 	// Set replaces the gauge's current value with the provided value
 | |
| 	Set(float64)
 | |
| }
 | |
| 
 | |
| // LabeledGauge describes a gauge the must have values populated before use.
 | |
| type LabeledGauge interface {
 | |
| 	WithValues(labels ...string) Gauge
 | |
| }
 | |
| 
 | |
| type labeledGauge struct {
 | |
| 	pg *prometheus.GaugeVec
 | |
| }
 | |
| 
 | |
| func (lg *labeledGauge) WithValues(labels ...string) Gauge {
 | |
| 	return &gauge{pg: lg.pg.WithLabelValues(labels...)}
 | |
| }
 | |
| 
 | |
| func (lg *labeledGauge) Describe(c chan<- *prometheus.Desc) {
 | |
| 	lg.pg.Describe(c)
 | |
| }
 | |
| 
 | |
| func (lg *labeledGauge) Collect(c chan<- prometheus.Metric) {
 | |
| 	lg.pg.Collect(c)
 | |
| }
 | |
| 
 | |
| type gauge struct {
 | |
| 	pg prometheus.Gauge
 | |
| }
 | |
| 
 | |
| func (g *gauge) Inc(vs ...float64) {
 | |
| 	if len(vs) == 0 {
 | |
| 		g.pg.Inc()
 | |
| 	}
 | |
| 
 | |
| 	g.Add(sumFloat64(vs...))
 | |
| }
 | |
| 
 | |
| func (g *gauge) Dec(vs ...float64) {
 | |
| 	if len(vs) == 0 {
 | |
| 		g.pg.Dec()
 | |
| 	}
 | |
| 
 | |
| 	g.Add(-sumFloat64(vs...))
 | |
| }
 | |
| 
 | |
| func (g *gauge) Add(v float64) {
 | |
| 	g.pg.Add(v)
 | |
| }
 | |
| 
 | |
| func (g *gauge) Set(v float64) {
 | |
| 	g.pg.Set(v)
 | |
| }
 | |
| 
 | |
| func (g *gauge) Describe(c chan<- *prometheus.Desc) {
 | |
| 	g.pg.Describe(c)
 | |
| }
 | |
| 
 | |
| func (g *gauge) Collect(c chan<- prometheus.Metric) {
 | |
| 	g.pg.Collect(c)
 | |
| }
 |