In a basic configuration cAdvisor monitors all running containers on the Docker host. Container statistics are sent over TCP protocol to the ATSD container installed on the same host. When a new container is launched it will be automatically discovered by cAdvisor and its statistics will be continuously sent into ATSD while the container is running.

In an advanced configuration, multiple cAdvisor instances can be configured to send container statistics to a centralized ATSD installation. ATSD will store metrics from local and remote Docker hosts for consolidated reporting and analytics. This type of configuration is suited for centralized workload planning, capacity planning and performance monitoring.

Launch live cAdvisor Disk Detail Portal in Axibase Chart Lab.

cAdvisor Host Portal

Launch live cAdvisor Host Portal in Axibase Chart Lab.

cAdvisor Mutli-Host Portal

Launch live cAdvisor Multi-Host Portal in Axibase Chart Lab.

Collected cAdvisor Metrics

CPU Metrics

CPU metrics will be found in the cpuacct controller. CPU usages is generated by the processes of the container, broken down between user and system time. User is the time during which the processes were in direct control of the CPU, and system is the time during which the CPU was executing system calls on behalf of those processes. Those times are expressed in ticks of 1/100th of a second.

I/O Metrics

I/O is accounted in the blkio controller.

io_service_bytes – indicates the number of bytes read and written by the cgroup. It has 4 counters per device, because for each device, it differentiates between synchronous vs. asynchronous I/O, and reads vs. writes.

io_serviced – the number of I/O operations performed, regardless of their size. It also has 4 counters per device.

Memory Metrics

Memory metrics are found in the “memory” cgroup.

pgfault and pgmajfault – indicate the number of times that a process of the cgroup triggered a page fault and a major fault. A page fault happens when a process accesses a part of its virtual memory space which is nonexistent or protected.

memory.usage – the amount of all used memory, regardless of when it was accessed.

memory.usage – the amount of memory that a processes require in a given time interval. This includes recently accessed memory, dirty memory and kernel memory.

Task Metrics

taskstats.nriowait – number of tasks waiting on I/O.taskstats.nrrunning – number of running tasks.taskstats.nrsleeping – number of sleeping tasks.taskstats.nrstopped – number of tasks in stopped statentaskstats.nruninterruptible – number of tasks in uninterruptible state.