163 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package meter
 | |
| 
 | |
| import (
 | |
| 	"io"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| // NoopMeter is an noop implementation of Meter
 | |
| type noopMeter struct {
 | |
| 	opts Options
 | |
| }
 | |
| 
 | |
| // NewMeter returns a configured noop reporter:
 | |
| func NewMeter(opts ...Option) Meter {
 | |
| 	return &noopMeter{opts: NewOptions(opts...)}
 | |
| }
 | |
| 
 | |
| // Clone return old meter with new options
 | |
| func (r *noopMeter) Clone(opts ...Option) Meter {
 | |
| 	options := r.opts
 | |
| 	for _, o := range opts {
 | |
| 		o(&options)
 | |
| 	}
 | |
| 	return &noopMeter{opts: options}
 | |
| }
 | |
| 
 | |
| func (r *noopMeter) Name() string {
 | |
| 	return r.opts.Name
 | |
| }
 | |
| 
 | |
| // Init initialize options
 | |
| func (r *noopMeter) Init(opts ...Option) error {
 | |
| 	for _, o := range opts {
 | |
| 		o(&r.opts)
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // Counter implements the Meter interface
 | |
| func (r *noopMeter) Counter(name string, labels ...string) Counter {
 | |
| 	return &noopCounter{labels: labels}
 | |
| }
 | |
| 
 | |
| // FloatCounter implements the Meter interface
 | |
| func (r *noopMeter) FloatCounter(name string, labels ...string) FloatCounter {
 | |
| 	return &noopFloatCounter{labels: labels}
 | |
| }
 | |
| 
 | |
| // Gauge implements the Meter interface
 | |
| func (r *noopMeter) Gauge(name string, f func() float64, labels ...string) Gauge {
 | |
| 	return &noopGauge{labels: labels}
 | |
| }
 | |
| 
 | |
| // Summary implements the Meter interface
 | |
| func (r *noopMeter) Summary(name string, labels ...string) Summary {
 | |
| 	return &noopSummary{labels: labels}
 | |
| }
 | |
| 
 | |
| // SummaryExt implements the Meter interface
 | |
| func (r *noopMeter) SummaryExt(name string, window time.Duration, quantiles []float64, labels ...string) Summary {
 | |
| 	return &noopSummary{labels: labels}
 | |
| }
 | |
| 
 | |
| // Histogram implements the Meter interface
 | |
| func (r *noopMeter) Histogram(name string, labels ...string) Histogram {
 | |
| 	return &noopHistogram{labels: labels}
 | |
| }
 | |
| 
 | |
| // Set implements the Meter interface
 | |
| func (r *noopMeter) Set(opts ...Option) Meter {
 | |
| 	m := &noopMeter{opts: r.opts}
 | |
| 
 | |
| 	for _, o := range opts {
 | |
| 		o(&m.opts)
 | |
| 	}
 | |
| 
 | |
| 	return m
 | |
| }
 | |
| 
 | |
| func (r *noopMeter) Write(w io.Writer, opts ...Option) error {
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // Options implements the Meter interface
 | |
| func (r *noopMeter) Options() Options {
 | |
| 	return r.opts
 | |
| }
 | |
| 
 | |
| // String implements the Meter interface
 | |
| func (r *noopMeter) String() string {
 | |
| 	return "noop"
 | |
| }
 | |
| 
 | |
| type noopCounter struct {
 | |
| 	labels []string
 | |
| }
 | |
| 
 | |
| func (r *noopCounter) Add(int) {
 | |
| }
 | |
| 
 | |
| func (r *noopCounter) Dec() {
 | |
| }
 | |
| 
 | |
| func (r *noopCounter) Get() uint64 {
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| func (r *noopCounter) Inc() {
 | |
| }
 | |
| 
 | |
| func (r *noopCounter) Set(uint64) {
 | |
| }
 | |
| 
 | |
| type noopFloatCounter struct {
 | |
| 	labels []string
 | |
| }
 | |
| 
 | |
| func (r *noopFloatCounter) Add(float64) {
 | |
| }
 | |
| 
 | |
| func (r *noopFloatCounter) Get() float64 {
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| func (r *noopFloatCounter) Set(float64) {
 | |
| }
 | |
| 
 | |
| func (r *noopFloatCounter) Sub(float64) {
 | |
| }
 | |
| 
 | |
| type noopGauge struct {
 | |
| 	labels []string
 | |
| }
 | |
| 
 | |
| func (r *noopGauge) Get() float64 {
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| type noopSummary struct {
 | |
| 	labels []string
 | |
| }
 | |
| 
 | |
| func (r *noopSummary) Update(float64) {
 | |
| }
 | |
| 
 | |
| func (r *noopSummary) UpdateDuration(time.Time) {
 | |
| }
 | |
| 
 | |
| type noopHistogram struct {
 | |
| 	labels []string
 | |
| }
 | |
| 
 | |
| func (r *noopHistogram) Reset() {
 | |
| }
 | |
| 
 | |
| func (r *noopHistogram) Update(float64) {
 | |
| }
 | |
| 
 | |
| func (r *noopHistogram) UpdateDuration(time.Time) {
 | |
| }
 | |
| 
 | |
| // func (r *noopHistogram) VisitNonZeroBuckets(f func(vmrange string, count uint64)) {}
 |