OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / go-kit / kit / metrics / provider / graphite.go
1 package provider
2
3 import (
4         "github.com/go-kit/kit/metrics"
5         "github.com/go-kit/kit/metrics/graphite"
6 )
7
8 type graphiteProvider struct {
9         g    *graphite.Graphite
10         stop func()
11 }
12
13 // NewGraphiteProvider wraps the given Graphite object and stop func and returns
14 // a Provider that produces Graphite metrics. A typical stop function would be
15 // ticker.Stop from the ticker passed to the SendLoop helper method.
16 func NewGraphiteProvider(g *graphite.Graphite, stop func()) Provider {
17         return &graphiteProvider{
18                 g:    g,
19                 stop: stop,
20         }
21 }
22
23 // NewCounter implements Provider.
24 func (p *graphiteProvider) NewCounter(name string) metrics.Counter {
25         return p.g.NewCounter(name)
26 }
27
28 // NewGauge implements Provider.
29 func (p *graphiteProvider) NewGauge(name string) metrics.Gauge {
30         return p.g.NewGauge(name)
31 }
32
33 // NewHistogram implements Provider.
34 func (p *graphiteProvider) NewHistogram(name string, buckets int) metrics.Histogram {
35         return p.g.NewHistogram(name, buckets)
36 }
37
38 // Stop implements Provider, invoking the stop function passed at construction.
39 func (p *graphiteProvider) Stop() {
40         p.stop()
41 }