Merge pull request #264 from bmarini/metrics-discard
Add a discard backend for metrics that does nothing
Peter Bourgon
7 years ago
0 | // Package discard implements a backend for package metrics that succeeds | |
1 | // without doing anything. | |
2 | package discard | |
3 | ||
4 | import "github.com/go-kit/kit/metrics" | |
5 | ||
6 | type counter struct { | |
7 | name string | |
8 | } | |
9 | ||
10 | // NewCounter returns a Counter that does nothing. | |
11 | func NewCounter(name string) metrics.Counter { return &counter{name} } | |
12 | ||
13 | func (c *counter) Name() string { return c.name } | |
14 | func (c *counter) With(metrics.Field) metrics.Counter { return c } | |
15 | func (c *counter) Add(delta uint64) {} | |
16 | ||
17 | type gauge struct { | |
18 | name string | |
19 | } | |
20 | ||
21 | // NewGauge returns a Gauge that does nothing. | |
22 | func NewGauge(name string) metrics.Gauge { return &gauge{name} } | |
23 | ||
24 | func (g *gauge) Name() string { return g.name } | |
25 | func (g *gauge) With(metrics.Field) metrics.Gauge { return g } | |
26 | func (g *gauge) Set(value float64) {} | |
27 | func (g *gauge) Add(delta float64) {} | |
28 | func (g *gauge) Get() float64 { return 0 } | |
29 | ||
30 | type histogram struct { | |
31 | name string | |
32 | } | |
33 | ||
34 | // NewHistogram returns a Histogram that does nothing. | |
35 | func NewHistogram(name string) metrics.Histogram { return &histogram{name} } | |
36 | ||
37 | func (h *histogram) Name() string { return h.name } | |
38 | func (h *histogram) With(metrics.Field) metrics.Histogram { return h } | |
39 | func (h *histogram) Observe(value int64) {} | |
40 | func (h *histogram) Distribution() ([]metrics.Bucket, []metrics.Quantile) { | |
41 | return []metrics.Bucket{}, []metrics.Quantile{} | |
42 | } |