예제 #1
0
    def test_metrics(self, mocked_function):
        """
        Tests the metrics section of the configuration

        """
        # Cpu only
        config = {'metrics': ['cpu']}
        plugin = Process(config=config)
        plugin._get_cpu_stats = mock.Mock(return_value={})
        plugin._get_memory_stats = mock.Mock(return_value={})
        self.assertTrue(plugin._should_get_metric('cpu'))
        self.assertFalse(plugin._should_get_metric('memory'))
        plugin.get_sample()
        self.assertTrue(plugin._get_cpu_stats.called)
        self.assertFalse(plugin._get_memory_stats.called)

        # Memory only
        config = {'metrics': ['memory']}
        plugin = Process(config=config)
        plugin._get_cpu_stats = mock.Mock(return_value={})
        plugin._get_memory_stats = mock.Mock(return_value={})
        self.assertFalse(plugin._should_get_metric('cpu'))
        self.assertTrue(plugin._should_get_metric('memory'))
        plugin.get_sample()
        self.assertFalse(plugin._get_cpu_stats.called)
        self.assertTrue(plugin._get_memory_stats.called)

        # Memory and cpu explicit
        config = {'metrics': ['memory', 'cpu']}
        plugin = Process(config=config)
        plugin._get_cpu_stats = mock.Mock(return_value={})
        plugin._get_memory_stats = mock.Mock(return_value={})
        self.assertTrue(plugin._should_get_metric('cpu'))
        self.assertTrue(plugin._should_get_metric('memory'))
        plugin.get_sample()
        self.assertTrue(plugin._get_cpu_stats.called)
        self.assertTrue(plugin._get_memory_stats.called)

        # Memory and cpu implicit
        config = {'metrics': []}
        plugin = Process(config=config)
        plugin._get_cpu_stats = mock.Mock(return_value={})
        plugin._get_memory_stats = mock.Mock(return_value={})
        self.assertTrue(plugin._should_get_metric('cpu'))
        self.assertTrue(plugin._should_get_metric('memory'))
        plugin.get_sample()
        self.assertTrue(plugin._get_cpu_stats.called)
        self.assertTrue(plugin._get_memory_stats.called)
예제 #2
0
    def test_cpu_stats(self, mocked_function):
        """
        Test CPU stats

        """
        plugin = Process(config={'name': 'process'})
        fake_process = FakeProcess('test')
        expected = [
            {
                'name': 'testhost.process.test.1.cpu_percent',
                'value': 11,
                'units': 'percent'
            },
            {
                'name': 'testhost.process.test.1.cpu_times.user',
                'value': 12,
                'units': 'seconds'
            },
            {
                'name': 'testhost.process.test.1.cpu_times.system',
                'value': 13,
                'units': 'seconds'
            }
        ]
        for metric in plugin._get_cpu_stats(fake_process):
            for e_metric in expected:
                if metric['name'] == e_metric['name']:
                    self.assertEquals(metric['value'], e_metric['value'])
                    self.assertEquals(metric['units'], e_metric['units'])
                    break
            else:
                self.fail("Metric %s not in expected" % metric['name'])