Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add option to ignore docker cloud containers #1108

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions docker_daemon/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# CHANGELOG - docker_daemon

1.9.0 / Unreleased
==================
### Changes

* [IMPROVEMENT] Add the `ignore_docker_cloud_containers` option to ignore Docker Cloud agent's containers.
* [BUGFIX] Ignore the excluded containers in the containers.{running|stopped} metrics.

1.8.0 / Unreleased
==================
### Changes
Expand Down
5 changes: 4 additions & 1 deletion docker_daemon/conf.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,10 @@ instances:
# To customize this default behavior, override exclude.
# If you do so, default exclusion patterns won't apply anymore and will need to be added explicitly.


# Use `ignore_docker_cloud_containers` if you are running the agent in Docker Cloud
# and you want the Docker check to ignore the containers used for the Docker cloud agent.
# The agent will ignore the docker images starting with `dockercloud/*` (i.e.: dockercloud/network-daemon).
# ignore_docker_cloud_containers: true

## Tagging
##
Expand Down
2 changes: 1 addition & 1 deletion docker_daemon/datadog_checks/docker_daemon/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

DockerDaemon = docker_daemon.DockerDaemon

__version__ = "1.8.0"
__version__ = "1.9.0"

__all__ = ['docker_daemon']
10 changes: 5 additions & 5 deletions docker_daemon/datadog_checks/docker_daemon/docker_daemon.py
Original file line number Diff line number Diff line change
Expand Up @@ -394,17 +394,17 @@ def _get_and_count_containers(self, custom_cgroups=False, healthchecks=False):
for container in containers:
container_name = DockerUtil.container_name_extractor(container)[0]

# Check if the container is included/excluded via its tags
if self._is_container_excluded(container):
self.log.debug("Container {0} is excluded".format(container_name))
continue

container_status_tags = self._get_tags(container, CONTAINER)

all_containers_count[tuple(sorted(container_status_tags))] += 1
if self._is_container_running(container):
running_containers_count[tuple(sorted(container_status_tags))] += 1

# Check if the container is included/excluded via its tags
if self._is_container_excluded(container):
self.log.debug("Container {0} is excluded".format(container_name))
continue

containers_by_id[container['Id']] = container

# grab pid via API if custom cgroups - otherwise we won't find process when
Expand Down
2 changes: 1 addition & 1 deletion docker_daemon/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"linux",
"mac_os"
],
"version": "1.8.0",
"version": "1.9.0",
"public_title": "Datadog-Docker Integration",
"categories":["containers"],
"type":"check",
Expand Down
8 changes: 0 additions & 8 deletions docker_daemon/test/test_docker_daemon.py
Original file line number Diff line number Diff line change
Expand Up @@ -373,18 +373,14 @@ def test_basic_config_twice(self):

def test_exclude_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:redis', 'image_tag:latest']),
('docker.image.virtual_size', ['image_name:nginx', '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']),
Expand Down Expand Up @@ -430,17 +426,13 @@ def test_exclude_filter(self):

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),
Expand Down