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() {}