Esempio n. 1
0
    def test_set(self):
        # Create some fake metrics.
        dog = ThreadStats()
        dog.start(roll_up_interval=10, flush_in_thread=False)
        reporter = dog.reporter = MemoryReporter()

        dog.set('test.set.1', "a string", 100.0)
        dog.set('test.set.1', frozenset(), 105.0)
        dog.set('test.set.2', 30, 115.0)
        dog.set('test.set.3', 30, 125.0)
        dog.flush(120.0)

        # Assert they've been properly flushed.
        metrics = self.sort_metrics(reporter.metrics)
        assert len(metrics) == 2

        (first, second) = metrics
        assert first['metric'] == 'test.set.1'
        assert first['points'][0][0] == 100.0
        assert first['points'][0][1] == 2
        assert second['metric'] == 'test.set.2'
        assert second['points'][0][0] == 110.0
        assert second['points'][0][1] == 1

        # Flush again and make sure we're progressing.
        reporter.metrics = []
        dog.flush(130.0)
        metrics = self.sort_metrics(reporter.metrics)
        assert len(metrics) == 1
        assert metrics[0]['metric'] == 'test.set.3'
        assert metrics[0]['points'][0][0] == 120.0
        assert metrics[0]['points'][0][1] == 1

        # Finally, make sure we've flushed all metrics.
        reporter.metrics = []
        dog.flush(150.0)
        assert len(reporter.metrics) == 0