diff --git a/tests/unit/dogstatsd/test_statsd.py b/tests/unit/dogstatsd/test_statsd.py index b9a24cfc1..865ccd2c3 100644 --- a/tests/unit/dogstatsd/test_statsd.py +++ b/tests/unit/dogstatsd/test_statsd.py @@ -1116,6 +1116,25 @@ def test_aggregation_buffering_simultaneously_with_interval(self): fake_socket.recv(2, no_wait=True) ) + def test_buffered_metric_aggregation(self): + dogstatsd = DogStatsd(disable_buffering=True, disable_aggregation=False, telemetry_min_flush_interval=0) + fake_socket = FakeSocket() + dogstatsd.socket = fake_socket + dogstatsd.histogram("test.histogram_aggregation", 1) + dogstatsd.distribution("test.distribution_aggregation", 2) + dogstatsd.timing("test.timing_aggregation", 3) + dogstatsd._start_flush_thread() + time.sleep(dogstatsd._flush_interval / 2) + # Ensure that packets didn't arrive immediately for buffered_metrics + self.assertIsNone(dogstatsd.socket.recv(2, no_wait=True)) + + time.sleep(dogstatsd._flush_interval) + packet = dogstatsd.socket.recv(2, no_wait=True) + h_metric = "test.histogram_aggregation:1|h" + d_metric = "test.distribution_aggregation:2|d" + t_metric = "test.timing_aggregation:3|ms" + self.assertTrue(h_metric in packet and d_metric in packet and t_metric in packet) + def test_disable_buffering(self): dogstatsd = DogStatsd(disable_buffering=True, telemetry_min_flush_interval=0) fake_socket = FakeSocket()