public void should_reset_the_gauge() { var min = new MinGauge(new MetricConfig("min2")); min.Update(42L); Measure measure = Testing.Sync <Measure>(min, min.GetMeasure, min.context_); Assert.That(measure.Value, Is.EqualTo(42L)); min.Reset(); min.Update(50L); measure = Testing.Sync <Measure>(min, min.GetMeasure, min.context_); Assert.That(measure.Value, Is.EqualTo(50D)); }
public void should_reset_the_gauge() { var max = new MaxGauge(new MetricConfig("max2")); max.Update(42L); Measure measure = Testing.Sync <Measure>(max, max.GetMeasure, max.context_); Assert.That(measure.Value, Is.EqualTo(42L)); max.Reset(); max.Update(40L); measure = Testing.Sync <Measure>(max, max.GetMeasure, max.context_); Assert.That(measure.Value, Is.EqualTo(40d)); }
public void should_measure_the_total_time_per_step() { var minute = TimeSpan.FromMinutes(1); var config = new MetricConfig("counter1"); var clock = new StepClock(TimeSpan.FromMinutes(1)); var context = new MetricContext(clock); var timer = new BucketTimer.Builder(config) .WithBuckets(new long[] { 60, 120, 180 }) .WithTimeUnit(TimeUnit.Seconds) .WithMeasureUnit(TimeUnit.Minutes) .WithContext(context) .Build(); IMetric total = timer .Metrics .First( x => x.Config.Tags.FirstOrDefault(t => t.Value == "total") != null); clock.TickNow(1); timer.Update(TimeSpan.FromSeconds(10)); timer.Update(TimeSpan.FromSeconds(10)); timer.Update(TimeSpan.FromSeconds(10)); var measure = Testing.Sync <Measure>(total, total.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(30d / 60)); OnStep(total); clock.TickNow(1); timer.Update(TimeSpan.FromSeconds(30)); measure = Testing.Sync <Measure>(total, total.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(30d / 60)); OnStep(total); clock.TickNow(1); timer.Update(TimeSpan.FromSeconds(60)); measure = Testing.Sync <Measure>(total, total.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(1)); }
public void should_compute_the_mean_rate_of_values() { var clock = new StepClock(TimeSpan.FromMilliseconds(1)); var mean = new MeanRate(new MetricConfig("test"), TimeUnit.Seconds, new MetricContext(clock)); // add 1000 elemets at rate of 10 events/second for (int i = 0; i < 1000; i++) { mean.Mark(); clock.TickNow(100); } double value = Testing.Sync <Measure>(mean, mean.GetMeasure, mean.context_).Value; Assert.That(value, Is.EqualTo(10)); }
public void should_count_the_number_of_times_a_bucket_was_hit() { var minute = TimeSpan.FromMinutes(1); var config = new MetricConfig("counter1"); var clock = new StepClock(TimeSpan.FromMinutes(3)); var context = new MetricContext(clock); var timer = new BucketTimer.Builder(config) .WithBuckets(new long[] { 60, 120, 180 }) .WithTimeUnit(TimeUnit.Seconds) .WithMeasureUnit(TimeUnit.Minutes) .WithContext(context) .Build(); IMetric b60 = GetMetricWithTag(timer, "bucket=060s"); IMetric b120 = GetMetricWithTag(timer, "bucket=120s"); IMetric b180 = GetMetricWithTag(timer, "bucket=180s"); clock.TickNow(1); timer.Update(TimeSpan.FromSeconds(10)); timer.Update(TimeSpan.FromSeconds(10)); timer.Update(TimeSpan.FromSeconds(10)); var measure = Testing.Sync <Measure>(b60, b60.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(1)); measure = Testing.Sync <Measure>(b120, b120.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(0)); measure = Testing.Sync <Measure>(b180, b180.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(0)); OnStep(b60, b120, b180); clock.TickNow(1); timer.Update(TimeSpan.FromSeconds(30)); timer.Update(TimeSpan.FromSeconds(61)); timer.Update(TimeSpan.FromSeconds(65)); measure = Testing.Sync <Measure>(b60, b60.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(1 / 3d)); measure = Testing.Sync <Measure>(b120, b120.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(2 / 3d)); measure = Testing.Sync <Measure>(b180, b180.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(0)); OnStep(b60, b120, b180); clock.TickNow(1); timer.Update(TimeSpan.FromSeconds(180)); measure = Testing.Sync <Measure>(b60, b60.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(0)); measure = Testing.Sync <Measure>(b120, b120.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(0)); measure = Testing.Sync <Measure>(b180, b180.GetMeasure, context); Assert.That(measure.Value, Is.EqualTo(1 / 3d)); }