44 lines
836 B
Go
44 lines
836 B
Go
package metrics
|
|
|
|
var (
|
|
nopGauge = &noopGauge{}
|
|
nopCounter = &noopCounter{}
|
|
nopObserver = &noopObserver{}
|
|
|
|
noop Metrics = &noopMetrics{}
|
|
)
|
|
|
|
type noopMetrics struct{}
|
|
|
|
func Noop() Metrics {
|
|
return noop
|
|
}
|
|
|
|
func (m *noopMetrics) Counter(name MetricName, labels Labels) Counter {
|
|
return nopCounter
|
|
}
|
|
|
|
func (m *noopMetrics) Gauge(name MetricName, labels Labels) Gauge {
|
|
return nopGauge
|
|
}
|
|
|
|
func (m *noopMetrics) Observer(name MetricName, labels Labels) Observer {
|
|
return nopObserver
|
|
}
|
|
|
|
type noopGauge struct{}
|
|
|
|
func (*noopGauge) Inc() {}
|
|
func (*noopGauge) Dec() {}
|
|
func (*noopGauge) Add(v float64) {}
|
|
func (*noopGauge) Set(v float64) {}
|
|
|
|
type noopCounter struct{}
|
|
|
|
func (*noopCounter) Inc() {}
|
|
func (*noopCounter) Add(v float64) {}
|
|
|
|
type noopObserver struct{}
|
|
|
|
func (*noopObserver) Observe(v float64) {}
|