4 "github.com/go-kit/kit/metrics"
5 "github.com/go-kit/kit/metrics/statsd"
8 type statsdProvider struct {
13 // NewStatsdProvider wraps the given Statsd object and stop func and returns a
14 // Provider that produces Statsd metrics. A typical stop function would be
15 // ticker.Stop from the ticker passed to the SendLoop helper method.
16 func NewStatsdProvider(s *statsd.Statsd, stop func()) Provider {
17 return &statsdProvider{
23 // NewCounter implements Provider.
24 func (p *statsdProvider) NewCounter(name string) metrics.Counter {
25 return p.s.NewCounter(name, 1.0)
28 // NewGauge implements Provider.
29 func (p *statsdProvider) NewGauge(name string) metrics.Gauge {
30 return p.s.NewGauge(name)
33 // NewHistogram implements Provider, returning a StatsD Timing that accepts
34 // observations in milliseconds. The sample rate is fixed at 1.0. The bucket
35 // parameter is ignored.
36 func (p *statsdProvider) NewHistogram(name string, _ int) metrics.Histogram {
37 return p.s.NewTiming(name, 1.0)
40 // Stop implements Provider, invoking the stop function passed at construction.
41 func (p *statsdProvider) Stop() {