blob: 88cdf116b066b32ea1b6332ec173f41e0d9995c8 (
plain) (
tree)
|
|
package kamon.trace
import kamon.testkit.BaseKamonSpec
import kamon.util.NanoInterval
class SamplerSpec extends BaseKamonSpec("sampler-spec") {
"the Sampler" should {
"work as intended" when {
"using all mode" in {
val sampler = SampleAll
sampler.shouldTrace should be(true)
sampler.shouldReport(NanoInterval.default) should be(true)
}
"using random mode" in {
val sampler = new RandomSampler(100)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(true)
sampler.shouldReport(NanoInterval.default) should be(true)
}
"using ordered mode" in {
var sampler = new OrderedSampler(1)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(true)
sampler = new OrderedSampler(2)
sampler.shouldTrace should be(false)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(false)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(false)
sampler.shouldTrace should be(true)
sampler.shouldReport(NanoInterval.default) should be(true)
}
"using threshold mode" in {
val sampler = new ThresholdSampler(new NanoInterval(10000000L))
sampler.shouldTrace should be(true)
sampler.shouldReport(new NanoInterval(5000000L)) should be(false)
sampler.shouldReport(new NanoInterval(10000000L)) should be(true)
sampler.shouldReport(new NanoInterval(15000000L)) should be(true)
sampler.shouldReport(new NanoInterval(0L)) should be(false)
}
"using clock mode" in {
val sampler = new ClockSampler(new NanoInterval(10000000L))
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(false)
Thread.sleep(1L)
sampler.shouldTrace should be(false)
Thread.sleep(10L)
sampler.shouldTrace should be(true)
sampler.shouldTrace should be(false)
sampler.shouldReport(NanoInterval.default) should be(true)
}
}
}
}
|