templates/agent-conf.d/docker_daemon.yaml.erb (155 lines of code) (raw):
init_config:
# Change the root directory to look at to get cgroup statistics. Useful when running inside a
# container with host directories mounted on a different folder. Default: /.
# Example for the docker-dd-agent container:
docker_root: <%= @docker_root %>
# Timeout in seconds for the connection to the docker daemon
# Default: 5 seconds
#
timeout: <%= @timeout %>
# The version of the API the client will use. Specify 'auto' to use the API version provided by the server.
api_version: <%= @api_version %>
# Use TLS encryption while communicating with the Docker API
#
tls: <%= @tls %>
tls_client_cert: <%= @tls_client_cert %>
tls_client_key: <%= @tls_client_key %>
tls_cacert: <%= @tls_cacert %>
tls_verify: <%= @tls_verify %>
# Initialization retries
#
# if the agent is expected to start before Docker,
# use these settings to configure the retry policy.
# init_retry_interval defines how long (in seconds) the docker client
# will wait before retrying initialization.
# Defaults to 0.
#
init_retry_interval: <%= @init_retry_interval %>
# init_retries configures how many retries are made before failing permanently.
# Defaults to 0.
#
init_retries: <%= @init_retries %>
instances:
- ## Daemon and system configuration
##
# URL of the Docker daemon socket to reach the Docker API. HTTP/HTTPS also works.
# Warning: if that's a non-local daemon, we won't be able to collect performance metrics.
#
url: <%= @url %>
## Data collection
##
# Create events whenever a container status change.
# Defaults to true.
#
collect_events: <%= @collect_events %>
# By default we do not collect events with a status ['top', 'exec_start', 'exec_create'].
# Here can be added additional statuses to be filtered.
# List of available statuses can be found here https://docs.docker.com/engine/reference/commandline/events/#object-types
filtered_event_types: [<%= @filtered_event_types && !@filtered_event_types.empty? ? '"' + @filtered_event_types.reject(&:empty?).join('", "') + '"' : nil %>]
# Collect disk usage per container with docker.container.size_rw and
# docker.container.size_rootfs metrics.
# Warning: This might take time for Docker daemon to generate,
# ensure that `docker ps -a -q` run fast before enabling it.
# Defaults to false.
#
collect_container_size: <%= @collect_container_size %>
# Do you use custom cgroups for this particular instance?
# Note: enabling this option modifies the way in which we inspect the containers and causes
# some overhead - if you run a high volume of containers we may timeout.
#
custom_cgroups: <%= @custom_cgroups %>
# Report docker container healthcheck events as service checks
# Note: enabling this option modifies the way in which we inspect the containers and causes
# some overhead - if you run a high volume of containers we may timeout.
# Container Healthchecks are available starting with docker 1.12, enabling with older
# versions will result in an UNKNOWN state for the service check.
#
# You must whitelist the containers you wish to submit health service checks for.
# Use the same mechanism as the tagging system (see Tag:performance_tags section).
# Example: ["docker_image:tomcat", "container_name:web_front_nginx"]
#
health_service_check_whitelist: [<%= @health_service_check_whitelist && !@health_service_check_whitelist.empty? ? '"' + @health_service_check_whitelist.reject(&:empty?).join('", "') + '"' : nil %>]
# Collect the container count tagged by state (running, paused, exited, dead)
# Defaults to false.
#
collect_container_count: <%= @collect_container_count %>
# Collect the volume count for attached and dangling volumes.
# Defaults to false.
#
collect_volume_count: <%= @collect_volume_count %>
# Collect images stats
# Number of available active images and intermediate images as gauges.
# Defaults to false.
#
collect_images_stats: <%= @collect_images_stats %>
# Collect disk usage per image with docker.image.size and docker.image.virtual_size metrics.
# The check gets this size with the `docker images` command.
# Requires collect_images_stats to be enabled.
# Defaults to false.
#
collect_image_size: <%= @collect_image_size %>
# Collect disk metrics (total, used, free) through the docker info command for data and metadata.
# This is useful when these values can't be obtained by the disk check.
# Example: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html
# Note that it only works when the storage driver is devicemapper.
# Explanation of these metrics can be found here:
# https://github.com/docker/docker/blob/v1.11.1/daemon/graphdriver/devmapper/README.md
# Defaults to false.
#
collect_disk_stats: <%= @collect_disk_stats %>
# Collect containers exit codes and send service checks critical when exit code is not 0
# Defaults to false.
#
collect_exit_codes: <%= @collect_exit_codes %>
# Exclude containers based on their tags
# An excluded container will be completely ignored. The rule is a regex on the tags.
#
# How it works: exclude first.
# If a tag matches an exclude rule, it won't be included unless it also matches an include rule.
# Examples:
# exclude all, except ubuntu and debian.
# exclude: [".*"]
# include: ["docker_image:ubuntu", "docker_image:debian"]
#
# include all, except ubuntu and debian.
# exclude: ["docker_image:ubuntu", "docker_image:debian"]
# include: []
#
# Default: include all containers
exclude: [<%= @exclude && !@exclude.empty? ? '"' + @exclude.reject(&:empty?).join('", "') + '"' : nil %>]
include: [<%= @include && !@include.empty? ? '"' + @include.reject(&:empty?).join('", "') + '"' : nil %>]
## Tagging
##
# You can add extra tags to your Docker metrics with the tags list option.
# Example: ["extra_tag", "env:testing"]
#
tags: [<%= @tags && !@tags.empty? ? '"' + @tags.reject(&:empty?).join('", "') + '"' : nil %>]
# If the agent is running in an Amazon ECS task, tags container metrics with the ECS task name and version.
# Default: true
#
ecs_tags: <%= @ecs_tags %>
# Custom metrics tagging
# Define which Docker tags to apply on metrics.
# Since it impacts the aggregation, modify it carefully (only if you really need it).
#
# Tags for performance metrics.
# Available:
# - image_name: Name of the image (example: "nginx")
# - image_tag: Tag of the image (example: "latest")
# - docker_image: LEGACY. The full image name:tag string (example: "nginx:latest")
# - container_name: Name of the container (example: "boring_euclid")
# - container_command: Command ran by the container (example: "echo 1")
#
performance_tags: [<%= @performance_tags && !@performance_tags.empty? ? '"' + @performance_tags.reject(&:empty?).join('", "') + '"' : nil %>]
# Tags for containers count metrics.
# Available: ["image_name", "image_tag", "docker_image", "container_command"]
#
container_tags: [<%= @container_tags && !@container_tags.empty? ? '"' + @container_tags.reject(&:empty?).join('", "') + '"' : nil %>]
# List of container label names that should be collected and sent as tags.
# Default to None
# Example:
collect_labels_as_tags: [<%= @collect_labels_as_tags && !@collect_labels_as_tags.empty? ? '"' + @collect_labels_as_tags.reject(&:empty?).join('", "') + '"' : nil %>]
# List of docker event attributes to add as tags of the datadog events
# Defaults to None.
#
event_attributes_as_tags: [<%= @event_attributes_as_tags && !@event_attributes_as_tags.empty? ? '"' + @event_attributes_as_tags.reject(&:empty?).join('", "') + '"' : nil %>]