As businesses embrace Docker and software containers to ease application deployments, many customers will call on IT service providers to monitor and manage those containers.
First, a little bit of background on Docker and container adoption. Roughly 29 percent of enterprises have workloads running in containers versus 24 percent of SMBs, and 41 percent of enterprises are experimenting as compared to 33 percent of SMBs, according RightScale's 2016 State of the Cloud survey.
As more and containers surface on production networks, channel partners are wondering which container metrics and KPIs (key performance indicators) they should track. Here are 10 of them, paraphrased from Sematext Group DevOps Evangelist Stefan Thies, who goes into much deeper details on Docker monitoring here.
1. Docker Host CPU: Understanding the CPU utilization of hosts and containers helps one optimize the resource usage of Docker hosts, Thies says. For instance, the container CPU usage can be throttled in order to avoid a single busy container slowing down other containers by taking Observing the total time that a container’s CPU usage was throttled provides the information one needs to adjust the setting for CPU shares in Docker. all available CPU resources.
2. Host Memory: The total memory used in each Docker host is important to know for the current operations and for capacity planning, he says.
3. Host Disk Space: A good practice is to run tasks to clean up the disk by removing unused containers and images frequently, he asserts.
4. Total Number of Containers Running: Knowing the current and historical number of containers is very handy during deployments and updates to check that everything is running like before, he says.
5. Container CPU - Throttled CPU Time: Observing the total time that a container’s CPU usage was throttled provides the information one needs to adjust the setting for CPU shares in Docker, he says.
6. Container Memory - Fail Counter: Spikes in this metric indicate one or more containers needing more memory than was allocated, he points out.
7. Container Memory Usage: Container memory limits ensure that applications perform well, without using too much memory, which could affect other containers on the same host, he says.
8. Container Swap: Like the memory of any other process, a container’s memory could be swapped to disk, he says.
9. Container Disk I/O: In Docker multiple applications use the same resources concurrently, he says. Thus, watching the disk I/O helps one define limits for specific applications and give higher throughput to critical applications like data stores or web servers, while throttling disk I/O for batch operations, he adds.
10. Container Network Metrics: Watch the network traffic to understand how container applications are impacting performance, he says.
For a closer look at each one of those metrics, check out Thies' extensive thoughts here.