github.com/rudderlabs/rudder-go-kit@v0.30.0/stats/nop.go (about)

     1  package stats
     2  
     3  import (
     4  	"context"
     5  	"time"
     6  
     7  	"go.opentelemetry.io/otel/trace/noop"
     8  )
     9  
    10  var NOP Stats = &nop{}
    11  
    12  type nop struct{}
    13  
    14  type nopMeasurement struct{}
    15  
    16  func (nopMeasurement) Count(_ int)                {}
    17  func (nopMeasurement) Increment()                 {}
    18  func (nopMeasurement) Gauge(_ any)                {}
    19  func (nopMeasurement) Observe(_ float64)          {}
    20  func (nopMeasurement) SendTiming(_ time.Duration) {}
    21  func (nopMeasurement) Since(_ time.Time)          {}
    22  func (nopMeasurement) RecordDuration() func()     { return func() {} }
    23  
    24  func (*nop) NewStat(_, _ string) Measurement {
    25  	return &nopMeasurement{}
    26  }
    27  
    28  func (*nop) NewTaggedStat(_, _ string, _ Tags) Measurement {
    29  	return &nopMeasurement{}
    30  }
    31  
    32  func (*nop) NewSampledTaggedStat(_, _ string, _ Tags) Measurement {
    33  	return &nopMeasurement{}
    34  }
    35  
    36  func (*nop) NewTracer(_ string) Tracer {
    37  	return NewTracerFromOpenTelemetry(noop.NewTracerProvider().Tracer(""))
    38  }
    39  
    40  func (*nop) Start(_ context.Context, _ GoRoutineFactory) error { return nil }
    41  func (*nop) Stop()                                             {}