Пример #1
0
        public void can_calculate_the_hit_ratio_as_a_guage_with_one_min_rate_as_default()
        {
            var clock     = new TestClock();
            var scheduler = new TestTaskScheduler(clock);

            var cacheHitMeter = new DefaultMeterMetric(clock, scheduler);
            var dbQueryTimer  = new DefaultTimerMetric(new DefaultAlgorithmRReservoir(1028), clock);

            foreach (var index in Enumerable.Range(0, 1000))
            {
                using (dbQueryTimer.NewContext())
                {
                    clock.Advance(TimeUnit.Milliseconds, 100);
                }

                if (index % 2 == 0)
                {
                    cacheHitMeter.Mark();
                }
            }

            var cacheHitRatioGauge = new HitRatioGauge(cacheHitMeter, dbQueryTimer);

            cacheHitRatioGauge.Value.Should().BeGreaterThan(0.0);
        }
Пример #2
0
        public void Can_calculate_the_hit_ratio_as_a_guage()
        {
            var cacheHitMeter = new DefaultMeterMetric(_clock, _schedular);
            var queryTimer    = new DefaultTimerMetric(new DefaultAlgorithmRReservoir(1028), _clock);

            foreach (var index in Enumerable.Range(0, 1000))
            {
                using (queryTimer.NewContext())
                {
                    _clock.Advance(TimeUnit.Milliseconds, 100);
                }

                if (index % 2 == 0)
                {
                    cacheHitMeter.Mark();
                }
            }

            var cacheHitRatioGauge = new HitRatioGauge(cacheHitMeter, queryTimer, value => value.OneMinuteRate);

            cacheHitRatioGauge.Value.Should().BeGreaterThan(0.0);
        }