monitors: - dimensions: doc: | This monitor reads container stats from a Docker API server. It is meant as a metric-compatible replacement of our [docker-collectd](https://github.com/signalfx/docker-collectd-plugin) plugin, which scales rather poorly against a large number of containers. This currently does not support CPU share/quota metrics. For more information on block IO metrics, see [the Linux cgroup block io controller doc](https://www.kernel.org/doc/Documentation/cgroup-v1/blkio-controller.txt). If you are running the agent directly on a host (outside of a container itself) and you are using the default Docker UNIX socket URL, you will probably need to add the `signalfx-agent` user to the `docker` group in order to have permission to access the Docker API via the socket. Requires Docker API version 1.22+. groups: blkio: description: BlockIO metrics cpu: description: CPU metrics memory: description: Memory metrics network: description: Network metrics metrics: blkio.io_service_bytes_recursive.async: description: Volume, in bytes, of asynchronous block I/O default: false type: cumulative group: blkio blkio.io_service_bytes_recursive.read: description: Volume, in bytes, of reads from block devices default: true type: cumulative group: blkio blkio.io_service_bytes_recursive.sync: description: Volume, in bytes, of synchronous block I/O default: false type: cumulative group: blkio blkio.io_service_bytes_recursive.total: description: Total volume, in bytes, of all block I/O default: false type: cumulative group: blkio blkio.io_service_bytes_recursive.write: description: Volume, in bytes, of writes to block devices default: true type: cumulative group: blkio blkio.io_serviced_recursive.async: description: Number of asynchronous block I/O requests default: false type: cumulative group: blkio blkio.io_serviced_recursive.read: description: Number of reads requests from block devices default: false type: cumulative group: blkio blkio.io_serviced_recursive.sync: description: Number of synchronous block I/O requests default: false type: cumulative group: blkio blkio.io_serviced_recursive.total: description: Total number of block I/O requests default: false type: cumulative group: blkio blkio.io_serviced_recursive.write: description: Number of write requests to block devices default: false type: cumulative group: blkio blkio.io_service_time_recursive.async: default: false type: cumulative group: blkio blkio.io_service_time_recursive.sync: default: false type: cumulative group: blkio blkio.io_service_time_recursive.read: default: false type: cumulative group: blkio blkio.io_service_time_recursive.total: default: false type: cumulative group: blkio blkio.io_service_time_recursive.write: default: false type: cumulative group: blkio blkio.io_queue_recursive.async: default: false type: cumulative group: blkio blkio.io_queue_recursive.sync: default: false type: cumulative group: blkio blkio.io_queue_recursive.read: default: false type: cumulative group: blkio blkio.io_queue_recursive.total: default: false type: cumulative group: blkio blkio.io_queue_recursive.write: default: false type: cumulative group: blkio blkio.io_merged_recursive.async: default: false type: cumulative group: blkio blkio.io_merged_recursive.sync: default: false type: cumulative group: blkio blkio.io_merged_recursive.read: default: false type: cumulative group: blkio blkio.io_merged_recursive.total: default: false type: cumulative group: blkio blkio.io_merged_recursive.write: default: false type: cumulative group: blkio blkio.io_time_recursive.async: default: false type: cumulative group: blkio blkio.io_time_recursive.sync: default: false type: cumulative group: blkio blkio.io_time_recursive.read: default: false type: cumulative group: blkio blkio.io_time_recursive.total: default: false type: cumulative group: blkio blkio.io_time_recursive.write: default: false type: cumulative group: blkio blkio.io_wait_time_recursive.async: default: false type: cumulative group: blkio blkio.io_wait_time_recursive.sync: default: false type: cumulative group: blkio blkio.io_wait_time_recursive.read: default: false type: cumulative group: blkio blkio.io_wait_time_recursive.total: default: false type: cumulative group: blkio blkio.io_wait_time_recursive.write: default: false type: cumulative group: blkio cpu.percent: description: Percentage of host CPU resources used by the container default: false type: gauge group: cpu cpu.percpu.usage: description: Jiffies of CPU time spent by the container, per CPU core default: false type: cumulative group: cpu cpu.throttling_data.periods: description: Number of periods default: false type: cumulative group: cpu cpu.throttling_data.throttled_periods: description: Number of periods throttled default: false type: cumulative group: cpu cpu.throttling_data.throttled_time: description: Throttling time in nano seconds default: false type: cumulative group: cpu cpu.usage.kernelmode: description: Jiffies of CPU time spent in kernel mode by the container default: false type: cumulative group: cpu cpu.usage.system: description: Jiffies of CPU time used by the system default: true type: cumulative group: cpu cpu.usage.total: description: Jiffies of CPU time used by the container default: true type: cumulative group: cpu cpu.usage.usermode: description: Jiffies of CPU time spent in user mode by the container default: false type: cumulative group: cpu memory.percent: description: Percent of memory (0-100) used by the container relative to its limit (excludes page cache usage) default: false type: gauge group: memory memory.stats.active_anon: description: Amount of memory that has been identified as active by the kernel. Anonymous memory is memory that is not linked to disk pages. default: false type: gauge group: memory memory.stats.active_file: description: Amount of active file cache memory. Cache memory = active_file + inactive_file + tmpfs default: false type: gauge group: memory memory.stats.cache: description: The amount of memory used by the processes of this control group that can be associated with a block on a block device. Also accounts for memory used by tmpfs. default: false type: gauge group: memory memory.stats.dirty: description: The amount of memory waiting to get written to disk default: false type: gauge group: memory memory.stats.hierarchical_memory_limit: description: The memory limit in place by the hierarchy cgroup default: false type: gauge group: memory memory.stats.hierarchical_memsw_limit: description: The memory+swap limit in place by the hierarchy cgroup default: false type: gauge group: memory memory.stats.inactive_anon: description: Amount of memory that has been identified as inactive by the kernel. Anonymous memory is memory that is not linked to disk pages. default: false type: gauge group: memory memory.stats.inactive_file: description: Amount of inactive file cache memory. Cache memory = active_file + inactive_file + tmpfs default: false type: gauge group: memory memory.stats.mapped_file: description: Indicates the amount of memory mapped by the processes in the control group. It doesn’t give you information about how much memory is used; it rather tells you how it is used. default: false type: gauge group: memory memory.stats.pgfault: description: Number of times that a process of the cgroup triggered a page fault. Page faults occur when a process accesses part of its virtual memory space which is nonexistent or protected. See https://docs.docker.com/config/containers/runmetrics for more info. default: false type: cumulative group: memory memory.stats.pgmajfault: description: Number of times that a process of the cgroup triggered a major page fault. Page faults occur when a process accesses part of its virtual memory space which is nonexistent or protected. See https://docs.docker.com/config/containers/runmetrics for more info. default: false type: cumulative group: memory memory.stats.pgpgin: description: Number of charging events to the memory cgroup. Charging events happen each time a page is accounted as either mapped anon page(RSS) or cache page to the cgroup. default: false type: cumulative group: memory memory.stats.pgpgout: description: Number of uncharging events to the memory cgroup. Uncharging events happen each time a page is unaccounted from the cgroup. default: false type: cumulative group: memory memory.stats.rss: description: 'The amount of memory that doesn’t correspond to anything on disk: stacks, heaps, and anonymous memory maps.' default: false type: gauge group: memory memory.stats.rss_huge: description: Amount of memory due to anonymous transparent hugepages. default: false type: gauge group: memory memory.stats.shmem: description: "Amount of [Shared Memory](https://www.kernel.org/doc/gorman/html/understand/understand015.html) used by the container, in bytes." default: false type: gauge group: memory memory.stats.swap: description: Bytes of swap memory used by container default: false type: gauge group: memory memory.stats.total_active_anon: description: Total amount of memory that has been identified as active by the kernel. Anonymous memory is memory that is not linked to disk pages. default: false type: gauge group: memory memory.stats.total_active_file: description: Total amount of active file cache memory. Cache memory = active_file + inactive_file + tmpfs default: false type: gauge group: memory memory.stats.total_cache: description: Total amount of memory used by the processes of this control group that can be associated with a block on a block device. Also accounts for memory used by tmpfs. default: false type: gauge group: memory memory.stats.total_dirty: description: Total amount of memory waiting to get written to disk default: false type: gauge group: memory memory.stats.total_inactive_anon: description: Total amount of memory that has been identified as inactive by the kernel. Anonymous memory is memory that is not linked to disk pages. default: false type: gauge group: memory memory.stats.total_inactive_file: description: Total amount of inactive file cache memory. Cache memory = active_file + inactive_file + tmpfs default: false type: gauge group: memory memory.stats.total_mapped_file: description: Total amount of memory mapped by the processes in the control group. It doesn’t give you information about how much memory is used; it rather tells you how it is used. default: false type: gauge group: memory memory.stats.total_pgfault: description: Total number of page faults default: false type: cumulative group: memory memory.stats.total_pgmajfault: description: Total number of major page faults default: false type: cumulative group: memory memory.stats.total_pgpgin: description: Total number of charging events default: false type: cumulative group: memory memory.stats.total_pgpgout: description: Total number of uncharging events default: false type: cumulative group: memory memory.stats.total_rss: description: 'Total amount of memory that doesn’t correspond to anything on disk: stacks, heaps, and anonymous memory maps.' default: false type: gauge group: memory memory.stats.total_rss_huge: description: Total amount of memory due to anonymous transparent hugepages. default: false type: gauge group: memory memory.stats.total_shmem: description: "Available amount of [Shared Memory](https://www.kernel.org/doc/gorman/html/understand/understand015.html) used by the container, in bytes." default: false type: gauge group: memory memory.stats.total_swap: description: "Total amount of swap memory available to this container" default: false type: gauge group: memory memory.stats.total_unevictable: description: Total amount of memory that can not be reclaimed default: false type: gauge group: memory memory.stats.total_writeback: description: Total amount of memory from file/anon cache that are queued for syncing to the disk default: false type: gauge group: memory memory.stats.unevictable: description: The amount of memory that cannot be reclaimed. default: false type: gauge group: memory memory.stats.writeback: description: The amount of memory from file/anon cache that are queued for syncing to the disk default: false type: gauge group: memory memory.usage.limit: description: Memory usage limit of the container, in bytes default: true type: gauge group: memory memory.usage.max: description: Maximum measured memory usage of the container, in bytes default: false type: gauge group: memory memory.usage.total: description: | Bytes of memory used by the container. Note that this **includes the buffer cache** attributed to the process by the kernel from files that have been read by processes in the container. If you don't want to count that when monitoring containers, enable the metric `memory.stats.total_cache` and subtract that metric from this one. default: true type: gauge group: memory network.usage.rx_bytes: description: Bytes received by the container via its network interface default: true type: cumulative group: network network.usage.rx_dropped: description: Number of inbound network packets dropped by the container default: false type: cumulative group: network network.usage.rx_errors: description: Errors receiving network packets default: false type: cumulative group: network network.usage.rx_packets: description: Network packets received by the container via its network interface default: false type: cumulative group: network network.usage.tx_bytes: description: Bytes sent by the container via its network interface default: true type: cumulative group: network network.usage.tx_dropped: description: Number of outbound network packets dropped by the container default: false type: cumulative group: network network.usage.tx_errors: description: Errors sending network packets default: false type: cumulative group: network network.usage.tx_packets: description: Network packets sent by the container via its network interface default: false type: cumulative group: network monitorType: docker-container-stats properties: