ipld-eth-server/vendor/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer/sampler_test.go
2018-09-11 16:30:29 -05:00

39 lines
992 B
Go

package tracer
import (
"testing"
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/internal"
"github.com/stretchr/testify/assert"
)
func TestRateSampler(t *testing.T) {
assert := assert.New(t)
assert.True(NewRateSampler(1).Sample(newBasicSpan("test")))
assert.False(NewRateSampler(0).Sample(newBasicSpan("test")))
assert.False(NewRateSampler(0).Sample(newBasicSpan("test")))
assert.False(NewRateSampler(1).Sample(internal.NoopSpan{}))
}
func TestRateSamplerFinishedSpan(t *testing.T) {
rs := NewRateSampler(0.9999)
tracer := newTracer(WithSampler(rs)) // high probability of sampling
span := newBasicSpan("test")
span.finished = true
tracer.sample(span)
if !rs.Sample(span) {
t.Skip("wasn't sampled") // no flaky tests
}
_, ok := span.Metrics[sampleRateMetricKey]
assert.False(t, ok)
}
func TestRateSamplerSetting(t *testing.T) {
assert := assert.New(t)
rs := NewRateSampler(1)
assert.Equal(float64(1), rs.Rate())
rs.SetRate(0.5)
assert.Equal(float64(0.5), rs.Rate())
}