46 lines
966 B
Go
46 lines
966 B
Go
package metrics
|
|
|
|
import "github.com/go-gost/core/metrics"
|
|
|
|
var (
|
|
nopGauge = &noopGauge{}
|
|
nopCounter = &noopCounter{}
|
|
nopObserver = &noopObserver{}
|
|
|
|
noop metrics.Metrics = &noopMetrics{}
|
|
)
|
|
|
|
type noopMetrics struct{}
|
|
|
|
func Noop() metrics.Metrics {
|
|
return noop
|
|
}
|
|
|
|
func (m *noopMetrics) Counter(name metrics.MetricName, labels metrics.Labels) metrics.Counter {
|
|
return nopCounter
|
|
}
|
|
|
|
func (m *noopMetrics) Gauge(name metrics.MetricName, labels metrics.Labels) metrics.Gauge {
|
|
return nopGauge
|
|
}
|
|
|
|
func (m *noopMetrics) Observer(name metrics.MetricName, labels metrics.Labels) metrics.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) {}
|