Codebase list golang-github-go-kit-kit / 8d97c77
Merge pull request #264 from bmarini/metrics-discard Add a discard backend for metrics that does nothing Peter Bourgon 7 years ago
1 changed file(s) with 43 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
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 }