def crawl(self, container_id, avoid_setns=False, **kwargs): container = DockerContainer(container_id) used = buffered = cached = free = 'unknown' with open(container.get_memory_cgroup_path('memory.stat' ), 'r') as f: for line in f: (key, value) = line.strip().split(' ') if key == 'total_cache': cached = int(value) if key == 'total_active_file': buffered = int(value) with open(container.get_memory_cgroup_path( 'memory.limit_in_bytes'), 'r') as f: limit = int(f.readline().strip()) with open(container.get_memory_cgroup_path( 'memory.usage_in_bytes'), 'r') as f: used = int(f.readline().strip()) host_free = psutil.virtual_memory().free container_total = used + min(host_free, limit - used) free = container_total - used if 'unknown' not in [used, free] and (free + used) > 0: util_percentage = float(used) / (free + used) * 100.0 else: util_percentage = 'unknown' return [('memory', MemoryFeature(used, buffered, cached, free, util_percentage), 'memory')]
def crawl(self, container_id, avoid_setns=False, **kwargs): container = DockerContainer(container_id) used = buffered = cached = free = 'unknown' with open(container.get_memory_cgroup_path('memory.stat'), 'r') as f: for line in f: (key, value) = line.strip().split(' ') if key == 'total_cache': cached = int(value) if key == 'total_active_file': buffered = int(value) with open(container.get_memory_cgroup_path('memory.limit_in_bytes'), 'r') as f: limit = int(f.readline().strip()) with open(container.get_memory_cgroup_path('memory.usage_in_bytes'), 'r') as f: used = int(f.readline().strip()) host_free = psutil.virtual_memory().free container_total = used + min(host_free, limit - used) free = container_total - used if 'unknown' not in [used, free] and (free + used) > 0: util_percentage = float(used) / (free + used) * 100.0 else: util_percentage = 'unknown' return [('memory', MemoryFeature(used, buffered, cached, free, util_percentage), 'memory')]
def _test_non_implemented_methods(self): c = DockerContainer("some_id") with self.assertRaises(NotImplementedError): c.get_memory_cgroup_path() with self.assertRaises(NotImplementedError): c.get_cpu_cgroup_path() with self.assertRaises(NotImplementedError): c.link_logfiles() with self.assertRaises(NotImplementedError): c.unlink_logfiles()
def test_memory_cgroup( self, mocked_ismount, mock_get_rootfs, mock_inspect, mocked_get_runtime_env, mocked_dockerps): c = DockerContainer("good_id") assert c.get_memory_cgroup_path( 'abc') == '/cgroup/memory/docker/good_id/abc'
def test_memory_cgroup(self, mocked_ismount, mock_get_rootfs, mock_inspect, mocked_get_runtime_env, mocked_dockerps): c = DockerContainer("good_id") assert c.get_memory_cgroup_path( 'abc') == '/cgroup/memory/docker/good_id/abc'