diff --git a/emptysender/emptysender.go b/emptysender/emptysender.go new file mode 100644 index 0000000..a341605 --- /dev/null +++ b/emptysender/emptysender.go @@ -0,0 +1,31 @@ +// Package emptysender implements an empty xstats Sender interface +// Useful for testing locally or perf benchmarks with and without instrumentation +package emptysender + +import ( + "time" +) + +type sender struct { +} + +// New creates an instance of type sender +func New() *sender { + return new(sender) +} + +// Gauge implements xstats.Sender interface +func (s *sender) Gauge(stat string, value float64, tags ...string) { +} + +// Count implements xstats.Sender interface +func (s *sender) Count(stat string, count float64, tags ...string) { +} + +// Histogram implements xstats.Sender interface +func (s *sender) Histogram(stat string, value float64, tags ...string) { +} + +// Timing implements xstats.Sender interface +func (s *sender) Timing(stat string, value time.Duration, tags ...string) { +} diff --git a/emptysender/emptysender_test.go b/emptysender/emptysender_test.go new file mode 100644 index 0000000..15cff2c --- /dev/null +++ b/emptysender/emptysender_test.go @@ -0,0 +1,13 @@ +package emptysender + +import ( + "testing" + + "github.com/rs/xstats" + "github.com/stretchr/testify/assert" +) + +func TestNew(t *testing.T) { + s := New() + assert.Implements(t, (*xstats.Sender)(nil), s) +}