def test_collect_labels_as_tags(self): expected_metrics = [ ('docker.containers.stopped.total', None), ('docker.containers.running.total', None), ('docker.containers.running', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'short_image:redis:latest']), ('docker.containers.running', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'short_image:nginx:latest', 'label1:nginx']), ('docker.mem.rss', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.containers.stopped', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'short_image:redis:latest']), ('docker.containers.stopped', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'short_image:nginx:latest', 'label1:nginx']), ('docker.mem.rss', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.limit', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.mem.cache', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.mem.cache', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.in_use', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.agentConfig = { 'docker_labels_as_tags': 'label1' } self.check = load_check('docker_daemon', config, self.agentConfig) self.run_check(config) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1)
def test_healthcheck(self): config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "health_service_check_whitelist": ["docker_image:nginx", "docker_image:redis"], }, ], } DockerUtil().set_docker_settings(config['init_config'], config['instances'][0]) DockerUtil().filtering_enabled = False self.run_check(config, force_reload=True) self.assertServiceCheck('docker.container_health', count=2) config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "health_service_check_whitelist": [], }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check(config, force_reload=True) self.assertServiceCheck('docker.container_health', count=0)
def test_healthcheck(self): config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "health_service_check_whitelist": ["docker_image:nginx", "docker_image:redis"], }, ], } DockerUtil().set_docker_settings(config['init_config'], config['instances'][0]) self.run_check(config, force_reload=True) self.assertServiceCheck('docker.container_health', count=2) config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "health_service_check_whitelist": [], }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check(config, force_reload=True) self.assertServiceCheck('docker.container_health', count=0)
def test_include_filter(self): expected_metrics = [ ('docker.containers.running', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'short_image:nginx:latest']), ('docker.containers.running', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'short_image:redis:latest']), ('docker.containers.stopped', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'short_image:nginx:latest']), ('docker.containers.stopped', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'short_image:redis:latest']), ('docker.containers.running.total', None), ('docker.containers.stopped.total', None), ('docker.cpu.system', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.cpu.user', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:redis', 'image_tag:latest']), ('docker.images.available', None), ('docker.images.intermediate', None), ('docker.io.read_bytes', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.io.write_bytes', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.cache', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.rss', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.net.bytes_rcvd', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'docker_network:bridge']), ('docker.net.bytes_sent', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'docker_network:bridge']) ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "include": ["image_name:redis"], "exclude": [".*"], "collect_images_stats": True, "collect_image_size": True, }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check_twice(config, force_reload=True) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1) perf_metrics = [ "docker.cpu.system", "docker.cpu.user", "docker.io.read_bytes", "docker.io.write_bytes", "docker.mem.cache", "docker.mem.rss", "docker.net.bytes_rcvd", "docker.net.bytes_sent" ] nginx_tags = ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest'] for m in perf_metrics: self.assertMetric(mname, tags=nginx_tags, count=0)
def test_include_filter(self): expected_metrics = [ ('docker.containers.running', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.containers.running', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.containers.stopped', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.containers.stopped', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.cpu.system', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.cpu.user', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:redis', 'image_tag:latest']), ('docker.images.available', None), ('docker.images.intermediate', None), ('docker.io.read_bytes', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.io.write_bytes', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.cache', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.rss', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.net.bytes_rcvd', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.net.bytes_sent', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']) ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "include": ["image_name:redis"], "exclude": [".*"], "collect_images_stats": True, "collect_image_size": True, }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check_twice(config, force_reload=True) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1) perf_metrics = [ "docker.cpu.system", "docker.cpu.user", "docker.io.read_bytes", "docker.io.write_bytes", "docker.mem.cache", "docker.mem.rss", "docker.net.bytes_rcvd", "docker.net.bytes_sent" ] nginx_tags = ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest'] for m in perf_metrics: self.assertMetric(mname, tags=nginx_tags, count=0)
def test_histogram(self): metric_suffix = ["count", "avg", "median", "max", "95percentile"] expected_metrics = [ ('docker.containers.running', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'short_image:nginx:latest']), ('docker.containers.running', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'short_image:redis:latest']), ('docker.containers.stopped', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'short_image:redis:latest']), ('docker.containers.stopped', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'short_image:nginx:latest']), ('docker.containers.running.total', None), ('docker.containers.stopped.total', None), ('docker.image.size', ['image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:redis', 'image_tag:latest']), ('docker.images.available', None), ('docker.images.intermediate', None), ] histo_metrics = [ ('docker.mem.cache', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.mem.cache', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.rss', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.mem.rss', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.limit', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.mem.in_use', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "collect_image_size": True, "collect_images_stats": True, "use_histogram": True, }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check(config, force_reload=True) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1) for mname, tags in histo_metrics: for suffix in metric_suffix: self.assertMetric(mname + "." + suffix, tags=tags, at_least=1)
def test_tags_options(self): expected_metrics = [ ('docker.containers.running', ["container_command:nginx -g 'daemon off;'"]), ('docker.containers.running', ['container_command:docker-entrypoint.sh redis-server']), ('docker.containers.stopped', ["container_command:nginx -g 'daemon off;'"]), ('docker.containers.stopped', ['container_command:docker-entrypoint.sh redis-server']), ('docker.containers.running.total', None), ('docker.containers.stopped.total', None), ('docker.cpu.system', ["container_command:nginx -g 'daemon off;'"]), ('docker.cpu.system', ['container_command:docker-entrypoint.sh redis-server']), ('docker.cpu.user', ['container_command:docker-entrypoint.sh redis-server']), ('docker.cpu.user', ["container_command:nginx -g 'daemon off;'"]), ('docker.image.size', ['image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:redis', 'image_tag:latest']), ('docker.images.available', None), ('docker.images.intermediate', None), ('docker.io.read_bytes', ["container_command:nginx -g 'daemon off;'"]), ('docker.io.read_bytes', ['container_command:docker-entrypoint.sh redis-server']), ('docker.io.write_bytes', ['container_command:docker-entrypoint.sh redis-server']), ('docker.io.write_bytes', ["container_command:nginx -g 'daemon off;'"]), ('docker.mem.cache', ["container_command:nginx -g 'daemon off;'"]), ('docker.mem.cache', ['container_command:docker-entrypoint.sh redis-server']), ('docker.mem.rss', ['container_command:docker-entrypoint.sh redis-server']), ('docker.mem.rss', ["container_command:nginx -g 'daemon off;'"]), ('docker.net.bytes_rcvd', ['container_command:docker-entrypoint.sh redis-server', 'docker_network:bridge']), ('docker.net.bytes_rcvd', ["container_command:nginx -g 'daemon off;'", 'docker_network:bridge']), ('docker.net.bytes_sent', ["container_command:nginx -g 'daemon off;'", 'docker_network:bridge']), ('docker.net.bytes_sent', ['container_command:docker-entrypoint.sh redis-server', 'docker_network:bridge']) ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "performance_tags": ["container_command"], "container_tags": ["container_command"], "collect_images_stats": True, "collect_image_size": True, }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check_twice(config, force_reload=True) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1)
def test_histogram(self): metric_suffix = ["count", "avg", "median", "max", "95percentile"] expected_metrics = [ ('docker.containers.running', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.containers.running', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.containers.stopped', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.containers.stopped', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.image.size', ['image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:redis', 'image_tag:latest']), ('docker.images.available', None), ('docker.images.intermediate', None), ] histo_metrics = [ ('docker.mem.cache', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.mem.cache', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.rss', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.mem.rss', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.limit', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ('docker.mem.in_use', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest']), ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "collect_image_size": True, "collect_images_stats": True, "use_histogram": True, }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check(config, force_reload=True) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1) for mname, tags in histo_metrics: for suffix in metric_suffix: self.assertMetric(mname + "." + suffix, tags=tags, at_least=1)
def test_tags_options(self): expected_metrics = [ ('docker.containers.running', ["container_command:nginx -g 'daemon off;'"]), ('docker.containers.running', ['container_command:docker-entrypoint.sh redis-server']), ('docker.containers.stopped', ["container_command:nginx -g 'daemon off;'"]), ('docker.containers.stopped', ['container_command:docker-entrypoint.sh redis-server']), ('docker.cpu.system', ["container_command:nginx -g 'daemon off;'"]), ('docker.cpu.system', ['container_command:docker-entrypoint.sh redis-server']), ('docker.cpu.user', ['container_command:docker-entrypoint.sh redis-server']), ('docker.cpu.user', ["container_command:nginx -g 'daemon off;'"]), ('docker.image.size', ['image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:redis', 'image_tag:latest']), ('docker.images.available', None), ('docker.images.intermediate', None), ('docker.io.read_bytes', ["container_command:nginx -g 'daemon off;'"]), ('docker.io.read_bytes', ['container_command:docker-entrypoint.sh redis-server']), ('docker.io.write_bytes', ['container_command:docker-entrypoint.sh redis-server']), ('docker.io.write_bytes', ["container_command:nginx -g 'daemon off;'"]), ('docker.mem.cache', ["container_command:nginx -g 'daemon off;'"]), ('docker.mem.cache', ['container_command:docker-entrypoint.sh redis-server']), ('docker.mem.rss', ['container_command:docker-entrypoint.sh redis-server']), ('docker.mem.rss', ["container_command:nginx -g 'daemon off;'"]), ('docker.net.bytes_rcvd', ['container_command:docker-entrypoint.sh redis-server']), ('docker.net.bytes_rcvd', ["container_command:nginx -g 'daemon off;'"]), ('docker.net.bytes_sent', ["container_command:nginx -g 'daemon off;'"]), ('docker.net.bytes_sent', ['container_command:docker-entrypoint.sh redis-server']) ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "performance_tags": ["container_command"], "container_tags": ["container_command"], "collect_images_stats": True, "collect_image_size": True, }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check_twice(config, force_reload=True) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1)
def test_docker_are_tags_filtered(self): with mock.patch.object(DockerUtil, 'is_k8s', side_effect=lambda: True): DockerUtil._drop() du = DockerUtil() self.assertTrue(du.is_k8s()) pause_containers = [ "docker_image:gcr.io/google_containers/pause-amd64:0.3.0", "docker_image:asia.gcr.io/google_containers/pause-amd64:3.0", "docker_image:k8s.gcr.io/pause-amd64:latest", "image_name:openshift/origin-pod", "image_name:kubernetes/pause", ] for image in pause_containers: self.assertTrue(du.are_tags_filtered([image])) self.assertTrue(pause_containers) self.assertFalse(du.are_tags_filtered(["docker_image:quay.io/coreos/etcd:latest"])) self.assertFalse(du.are_tags_filtered(["image_name:redis"]))
def test_labels_collection(self): expected_metrics = [ ('docker.containers.running', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx', 'short_image:nginx:latest']), ('docker.containers.running', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'short_image:redis:latest']), ('docker.containers.stopped', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest', 'short_image:redis:latest']), ('docker.containers.stopped', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx', 'short_image:nginx:latest']), ('docker.containers.running.total', None), ('docker.containers.stopped.total', None), ('docker.image.size', ['image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:redis', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:nginx', 'image_tag:latest']), ('docker.images.available', None), ('docker.images.intermediate', None), ('docker.mem.cache', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.mem.cache', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.rss', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.mem.rss', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.limit', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.mem.in_use', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "collect_labels_as_tags": ["label1"], "collect_image_size": True, "collect_images_stats": True, "collect_container_count": True, "collect_dead_container_count": True, "collect_exited_container_count": True, "collect_volume_count": True, "collect_dangling_volume_count": True, }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check(config, force_reload=True) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1)
def test_docker_are_tags_filtered(self): with mock.patch.object(DockerUtil, 'is_k8s', side_effect=lambda: True): DockerUtil._drop() du = DockerUtil() self.assertTrue(du.is_k8s()) pause_containers = [ "docker_image:gcr.io/google_containers/pause-amd64:0.3.0", "docker_image:asia.gcr.io/google_containers/pause-amd64:3.0", "docker_image:k8s.gcr.io/pause-amd64:latest", "image_name:openshift/origin-pod", "image_name:kubernetes/pause", ] for image in pause_containers: self.assertTrue(du.are_tags_filtered([image])) self.assertTrue(pause_containers) self.assertFalse(du.are_tags_filtered(["docker_image:quay.io/coreos/etcd:latest"])) self.assertFalse(du.are_tags_filtered(["image_name:redis"]))
def test_labels_collection(self): expected_metrics = [ ('docker.containers.running', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.containers.running', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.containers.stopped', ['docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.containers.stopped', ['docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.image.size', ['image_name:redis', 'image_tag:latest']), ('docker.image.size', ['image_name:nginx', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:redis', 'image_tag:latest']), ('docker.image.virtual_size', ['image_name:nginx', 'image_tag:latest']), ('docker.images.available', None), ('docker.images.intermediate', None), ('docker.mem.cache', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.mem.cache', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.rss', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.mem.rss', ['container_name:test-new-redis-latest', 'docker_image:redis:latest', 'image_name:redis', 'image_tag:latest']), ('docker.mem.limit', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ('docker.mem.in_use', ['container_name:test-new-nginx-latest', 'docker_image:nginx:latest', 'image_name:nginx', 'image_tag:latest', 'label1:nginx']), ] config = { "init_config": {}, "instances": [{ "url": "unix://var/run/docker.sock", "collect_labels_as_tags": ["label1"], "collect_image_size": True, "collect_images_stats": True, "collect_container_count": True, "collect_dead_container_count": True, "collect_exited_container_count": True, "collect_volume_count": True, "collect_dangling_volume_count": True, }, ], } DockerUtil._drop() DockerUtil(init_config=config['init_config'], instance=config['instances'][0]) self.run_check(config, force_reload=True) for mname, tags in expected_metrics: self.assertMetric(mname, tags=tags, count=1, at_least=1)