...

Source file src/github.com/go-kit/kit/metrics/provider/dogstatsd.go

Documentation: github.com/go-kit/kit/metrics/provider

     1  package provider
     2  
     3  import (
     4  	"github.com/go-kit/kit/metrics"
     5  	"github.com/go-kit/kit/metrics/dogstatsd"
     6  )
     7  
     8  type dogstatsdProvider struct {
     9  	d    *dogstatsd.Dogstatsd
    10  	stop func()
    11  }
    12  
    13  // NewDogstatsdProvider wraps the given Dogstatsd object and stop func and
    14  // returns a Provider that produces Dogstatsd metrics. A typical stop function
    15  // would be ticker.Stop from the ticker passed to the SendLoop helper method.
    16  func NewDogstatsdProvider(d *dogstatsd.Dogstatsd, stop func()) Provider {
    17  	return &dogstatsdProvider{
    18  		d:    d,
    19  		stop: stop,
    20  	}
    21  }
    22  
    23  // NewCounter implements Provider, returning a new Dogstatsd Counter with a
    24  // sample rate of 1.0.
    25  func (p *dogstatsdProvider) NewCounter(name string) metrics.Counter {
    26  	return p.d.NewCounter(name, 1.0)
    27  }
    28  
    29  // NewGauge implements Provider.
    30  func (p *dogstatsdProvider) NewGauge(name string) metrics.Gauge {
    31  	return p.d.NewGauge(name)
    32  }
    33  
    34  // NewHistogram implements Provider, returning a new Dogstatsd Histogram (note:
    35  // not a Timing) with a sample rate of 1.0. The buckets argument is ignored.
    36  func (p *dogstatsdProvider) NewHistogram(name string, _ int) metrics.Histogram {
    37  	return p.d.NewHistogram(name, 1.0)
    38  }
    39  
    40  // Stop implements Provider, invoking the stop function passed at construction.
    41  func (p *dogstatsdProvider) Stop() {
    42  	p.stop()
    43  }
    44  

View as plain text