Docker instrumentation for Infrastructure

The New Relic Infrastructure agent automatically collects metrics for Docker containers running on instrumented hosts. For Docker containers, the Processes page indicates which processes are containerized and the container ID for each Docker process. Infrastructure also captures any Docker labels associated with your containers, for filtering in Infrastructure and building Insights queries.


Infrastructure supports Docker versions 1.12 or higher.

Install for Docker

Following the standard Infrastructure installation procedures for Linux or Windows, install the Infrastructure agent on the parent host (not inside the Docker container). Collecting Docker metrics requires no additional configuration.

The ability to report on Docker container information like container name, label, image ID, etc. depends on the Docker daemon. Using docker-containerd-shim to run containers without the Docker daemon will impair the agent's ability to collect some metrics used in grouping data.

Adding Docker support in non-root agents

If you're running the Linux agent as a privileged or unprivileged user follow these instructions:

  1. Check that your system has a group named docker with group permissions to the /var/run/docker.sock file:

    ls -l /var/run/docker.sock
    srw-rw----. 1 root docker 0 Dec 19 12:26 /var/run/docker.sock
  2. If this group does not exist (some Linux distributions do not create the docker group by default), you need to create it manually and assign the ownership to the docker socket:

    sudo groupadd docker
    sudo chown root:docker /var/run/docker.sock
  3. Provide user access to the Docker control socket to the nri-agent user. To do this, you can add the nri-agent user to the docker group:

    sudo usermod -aG docker nri-agent

View Docker metrics in Infrastructure

screen-docker-processes-page.png > Processes: Use the in-page filtering and grouping tools to view Docker metrics.

The Infrastructure Processes page lists Docker processes alongside other running processes. To identify Docker processes:

  • Look for images with an image ID listed in the Image column.
  • Filter the page to view only specific Docker containers.
View only Docker processes

To view all Docker containers, type contained in the in-page filter, then select true from the dropdown. The Processes page then shows only containerized processes.

View each instance of a Docker image

To view all copies of a Docker container across your environment, click on its image ID in the Image column. The Processes page then shows only processes that share that unique image ID.

View resource usage for each Docker image

To view results grouped by Docker image (for example, to identify images that generate higher CPU load), select containerImageName from the Group By field.

View containers associated with a Docker label

To view only Docker containers with a particular Docker label, type containerLabel_ in the in-page filter, then select your label from the dropdown list. For example, containerLabel_maintainer or containerLabel_build_date.

View Docker metrics in Insights

You can also view Docker metrics in Insights by querying these attributes in the ProcessSample event:

For example, to see how many containers are associated with each Docker image:

SELECT uniqueCount(containerId) FROM ProcessSample FACET containerImageName SINCE 1 HOUR AGO TIMESERIES

For more help

Recommendations for learning more: