Example #1
0
    def test_basic_reporter(self):

        test1 = EventCounter("test1", events=["test_event"])
        register_counter(test1)

        v = SimpleValueReporter()
        register_reporter(v)
        start_auto_reporting(0.01)

        try:
            test1.report_event("test_event", "value", 2)

            sleep(0.1)
            self.assertEqual(v.values_wo_metadata, {"test1": 2})

            test1.report_event("test_event", "value", 1)
            sleep(0.05)
            self.assertEqual(v.values_wo_metadata, {"test1": 3})

            stop_auto_reporting()
            test1.report_event("test_event", "value", 1)
            sleep(0.05)
            self.assertEqual(v.values_wo_metadata, {"test1": 3})
        finally:
            unregister_counter(counter=test1)
            unregister_reporter(v)
Example #2
0
    def test_perf_frequency(self):
        class FakeFrequencyCounter(FrequencyCounter):

            i = 0

            def _get_current_time(self):
                self.i = self.i + 1
                return self.i

        c = FakeFrequencyCounter("c", events=["f", "c"], window_size=10)
        register_counter(c)
        try:
            @frequency(auto_add_counter=None)
            def f():
                pass

            @frequency("c")
            def g():
                pass

            f()
            g()

            self.assertEquals(c.get_value().value, 0.5)
        finally:
            unregister_counter(counter=c)
Example #3
0
    def test_munin_output(self):

        cfg = self.make_basic_cfg()

        plugin = self.create_plugin(cfg)

        jsfr = JSONFileReporter(output_file=self.filename)
        register_reporter(jsfr)
        test1 = EventCounter("test1")
        register_counter(test1)

        try:
            test1.report_event("test1", "value", 2)

            output_report()

            plugin.output_data(cfg)
            self.assertEqual(self.get_last_plugin_output(), ["multigraph test", "test1.value 2"])

            plugin.max_file_age_in_seconds = 0.00001
            self.clear_last_plugin_output()
            plugin.output_data(cfg)
            self.assertEqual(self.get_last_plugin_output(), [])

            plugin.max_file_age_in_seconds = None
            plugin.output_data(cfg)
            self.assertEqual(self.get_last_plugin_output(), ["multigraph test", "test1.value 2"])

            os.unlink(self.filename)
        finally:
            unregister_counter(counter=test1)
            unregister_reporter(jsfr)
Example #4
0
    def test_one_counter_multiple_events(self):
        test = TotalCounter("test", events=["test1", "test2"])
        register_counter(test)

        test.report_event("test1", "value", 1)
        test.report_event("test2", "value", 2)
        self.assertEquals(test.get_value().value, 3)

        unregister_counter(counter=test)
Example #5
0
    def test_perf_time(self):
        c = AverageTimeCounter("c")
        c.timer = FakeThreadLocalTimer()
        register_counter(c)
        try:
            @time(name="c")
            def f():
                c.timer._get_current_time()  # advances time -> just like sleep 1
                pass

            f()
            f()

            self.assertEqual(c.get_value().value, 2)
        finally:
            unregister_counter(counter=c)
Example #6
0
    def test_multiple_counters_one_event(self):
        test1 = TotalCounter("test1", events=["test"])
        register_counter(test1)
        test2 = TotalCounter("test2", events=["test"])
        register_counter(test2)

        v = SimpleValueReporter()
        register_reporter(v)

        report_value("test", 1)
        output_report()
        self.assertEquals(v.values_wo_metadata, dict(test1=1, test2=1))

        unregister_counter(counter=test1)
        unregister_counter(counter=test2)

        unregister_reporter(reporter=v)
Example #7
0
    def test_json_output(self):
        filename = "/tmp/json_test.txt"
        jsfr = JSONFileReporter(output_file=filename)
        test1 = EventCounter("test1")
        register_counter(test1)
        register_reporter(jsfr)

        try:
            test1.report_event("test1", "value", 2)

            output_report()
            report = JSONFileReporter.safe_read(filename)
            report = dict([(k, v) for k, v in report.iteritems() if not k.startswith("__")])
            self.assertEqual(report, {"test1": 2})

            os.unlink(filename)
        finally:
            unregister_counter(counter=test1)
            unregister_reporter(jsfr)
Example #8
0
    def test_frequency_cleans(self):
        c = FrequencyCounter("c", events=["f", "c"], window_size=0.5)
        register_counter(c)
        try:
            @frequency(auto_add_counter=None)
            def f():
                pass

            @frequency("c")
            def g():
                pass

            g()
            f()
            self.assertTrue(c.get_value().value > 0)
            sleep(0.7)
            #self.assertEqual(c.get_value().value, None)
        finally:
            unregister_counter(counter=c)
Example #9
0
    def test_basic_collection(self):
        test1 = TotalCounter("test1")
        register_counter(test1)
        test2 = TotalCounter("test2")
        register_counter(test2)

        v = SimpleValueReporter()
        register_reporter(v)

        report_value("test1", 1)
        report_value("test2", 2)
        output_report()
        self.assertTrue("__collection_time__" in v.last_values)
        self.assertEquals(v.values_wo_metadata,dict(test1=1,test2=2))

        unregister_counter(counter=test1)
        unregister_counter(counter=test2)

        unregister_reporter(reporter=v)
Example #10
0
    def test_counted_func(self):
        c = EventCounter("c")
        register_counter(c)

        try:
            @count("c")
            def f():
                pass

            f()
            f()
            f()

            self.assertEqual(c.get_value().value, 3L)

            c.clear()

            self.assertEqual(c.get_value().value, 0L)

            f()

            self.assertEqual(c.get_value().value, 1L)
        finally:
            unregister_counter(counter=c)