Monitor Docker containers

The Docker overview page that can be accessed directly from the navigation menu provides a summary of the most relevant information:

  1. The infographic at the top of the page displays the following:
    • Number of running containers
    • Top 3 containers consuming the most memory
    • Most recently started container
    • Most frequently used images
  2. The Average number of running containers section of the page provides deep insights into the dynamics of your Dockerized environment by showing you how the number of containers has evolved over the past 7 days.
  3. The Docker hosts section at the bottom of the page shows resource usage of individual Docker hosts. This information helps you make decisions about capacity planning and container provisioning.

Docker page

Enable Docker container monitoring

To enable Docker container monitoring:

  1. Make sure that you have a recent version of OneAgent installed on your Docker hosts and that your Docker version is supported.
  2. Go to Settings > Monitored Technologies.
  3. Make sure that the Plugin manager switch is enabled.
  4. Enable the Docker containers switch.
  5. Also enable the Docker switch further down the list.

The Docker tile now appears on your home dashboard. Click the Docker tile at any time to access the Docker overview page.

Home pane with Docker

Monitor Docker containers

To explore container resource usage, click a host in the Docker host list and then click the View containers button. This is information you could otherwise only get by executing a docker stats command.

On the Containers grouped by image name page you’ll see all containers of the same image running on the same host that are consuming the most resources.

Provided metrics include:

  • CPU: CPU user divided by CPU system, expressed as a percentage.
  • Memory: Resident Set Size (RSS) and cache memory. RSS reflects data belonging to processes, while cache memory represents the data stored on disk that is currently cached in memory.
  • Traffic: Both incoming and outgoing network traffic
  • Throttling: Total time that a container’s CPU usage was throttled

Monitor Docker images

In large environments it can be a challenge to keep up with image versions deployed across hosts and to track the containers of a certain image version. The Docker images page makes it easy to identify hosts running containers of a specific image version. Here you can learn details such as when an image was created and its virtual size (cumulative space taken up by an image).

Docker images

Monitor Dockerized services

Another valuable perspective is the Dockerized services page. Here you can view all Dockerized services in a list that includes insights into the load and response time of each service. You can correlate these metrics with the number of containers used to provide each service.

Dockerized services

Running Docker on AWS Beanstalk?

Have a look at our guidelines for configuring monitoring for Linux.

Limitations

There are performance limitations related to the number of running containers. The total number of containers that can be monitored in parallel isn't strictly defined though; this depends on the type of monitored applications and host resources.

  • Docker containers on Linux can run in any of the following network modes: Host, Bridge, Container, Overlay, None, Macvlan. The default network mode is Bridge. From the available network modes, OneAgent is capable of reporting topology for containers running in network modes: Host, Bridge, and Container. Topology for other network modes isn't reported. OneAgent is however able to detect and report other network modes (with the exception of Macvlan).

  • Docker topology isn't reported when using cloud-infrastructure monitoring mode on Linux.

  • Non-standard Docker binary file locations aren't supported on Linux.

  • Container monitoring isn't supported when OneAgent is deployed on Linux in non-root mode (in absence of ambient capabilities and with the DISABLE_ROOT_FALLBACK flag enabled).

  • Only UNIX sockets and unencrypted TCP connections are supported when accessing the Docker API. Encrypted TLS connections aren't supported at this time. Ensure that your Daemon Socket Options don't include the --tlsverify parameter.