def test_event_windowing(mocker, time_keeper): mocker.patch('time.time', side_effect=time_keeper.time) count = Count() config = MetricConfig(event_window=1, samples=2) count.record(config, 1.0, time_keeper.ms()) count.record(config, 1.0, time_keeper.ms()) assert 2.0 == count.measure(config, time_keeper.ms()) count.record(config, 1.0, time_keeper.ms()) # first event times out assert 2.0 == count.measure(config, time_keeper.ms())
def test_old_data_has_no_effect(mocker, time_keeper): mocker.patch('time.time', side_effect=time_keeper.time) max_stat = Max() min_stat = Min() avg_stat = Avg() count_stat = Count() window_ms = 100 samples = 2 config = MetricConfig(time_window_ms=window_ms, samples=samples) max_stat.record(config, 50, time_keeper.ms()) min_stat.record(config, 50, time_keeper.ms()) avg_stat.record(config, 50, time_keeper.ms()) count_stat.record(config, 50, time_keeper.ms()) time_keeper.sleep(samples * window_ms / 1000.0) assert float('-inf') == max_stat.measure(config, time_keeper.ms()) assert float(sys.maxsize) == min_stat.measure(config, time_keeper.ms()) assert 0.0 == avg_stat.measure(config, time_keeper.ms()) assert 0 == count_stat.measure(config, time_keeper.ms())
def test_time_windowing(mocker, time_keeper): mocker.patch('time.time', side_effect=time_keeper.time) count = Count() config = MetricConfig(time_window_ms=1, samples=2) count.record(config, 1.0, time_keeper.ms()) time_keeper.sleep(.001) count.record(config, 1.0, time_keeper.ms()) assert 2.0 == count.measure(config, time_keeper.ms()) time_keeper.sleep(.001) count.record(config, 1.0, time_keeper.ms()) # oldest event times out assert 2.0 == count.measure(config, time_keeper.ms())