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)
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'])