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_memory_stats(self, mocked_function): """ Test memory stats """ plugin = Process(config={'name': 'process'}) fake_process = FakeProcess('test') expected = [ { 'name': 'testhost.process.test.1.memory_percent', 'value': 1, 'units': 'percent' }, { 'name': 'testhost.process.test.1.memory_info.rss', 'value': 2, 'units': 'bytes' }, { 'name': 'testhost.process.test.1.memory_info.vms', 'value': 3, 'units': 'bytes' }, { 'name': 'testhost.process.test.1.memory_info_ex.rss', 'value': 4, 'units': 'bytes' }, { 'name': 'testhost.process.test.1.memory_info_ex.vms', 'value': 5, 'units': 'bytes' } ] for metric in plugin._get_memory_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'])