# Monitoring cAdvisor with Prometheus cAdvisor exposes container statistics as [Prometheus](https://prometheus.io) metrics out of the box. By default, these metrics are served under the `/metrics` HTTP endpoint. This endpoint may be customized by setting the `-prometheus_endpoint` command-line flag. To monitor cAdvisor with Prometheus, simply configure one or more jobs in Prometheus which scrape the relevant cAdvisor processes at that metrics endpoint. For details, see Prometheus's [Configuration](https://prometheus.io/docs/operating/configuration/) documentation, as well as the [Getting started](https://prometheus.io/docs/introduction/getting_started/) guide. # Examples * [CenturyLink Labs](https://labs.ctl.io/) did an excellent write up on [Monitoring Docker services with Prometheus +cAdvisor](https://www.ctl.io/developers/blog/post/monitoring-docker-services-with-prometheus/), while it is great to get a better overview of cAdvisor integration with Prometheus, the PromDash GUI part is outdated as it has been deprecated for Grafana. * [vegasbrianc](https://github.com/vegasbrianc) provides a [starter project](https://github.com/vegasbrianc/prometheus) for cAdvisor and Prometheus monitoring, alongide a ready-to-use [Grafana dashboard](https://github.com/vegasbrianc/grafana_dashboard). ## Prometheus metrics The table below lists the Prometheus metrics exposed by cAdvisor (in alphabetical order by metric name): Metric name | Type | Description | Unit (where applicable) :-----------|:-----|:------------|:----------------------- `container_accelerator_duty_cycle` | Gauge | Percent of time over the past sample period during which the accelerator was actively processing | percentage `container_accelerator_memory_total_bytes` | Gauge | Total accelerator memory | bytes `container_accelerator_memory_used_bytes` | Gauge | Total accelerator memory allocated | bytes `container_cpu_cfs_periods_total` | Counter | Number of elapsed enforcement period intervals | `container_cpu_cfs_throttled_periods_total` | Counter | Number of throttled period intervals | `container_cpu_cfs_throttled_seconds_total` | Counter | Total time duration the container has been throttled | seconds `container_cpu_load_average_10s` | Gauge | Value of container cpu load average over the last 10 seconds | `container_cpu_schedstat_run_periods_total` | Counter | Number of times processes of the cgroup have run on the cpu | `container_cpu_schedstat_run_seconds_total` | Counter | Time duration the processes of the container have run on the CPU | seconds `container_cpu_schedstat_runqueue_seconds_total` | Counter | Time duration processes of the container have been waiting on a runqueue | seconds `container_cpu_system_seconds_total` | Counter | Cumulative system cpu time consumed | seconds `container_cpu_usage_seconds_total` | Counter | Cumulative cpu time consumed | seconds `container_cpu_user_seconds_total` | Counter | Cumulative user cpu time consumed | seconds `container_file_descriptors` | Gauge | Number of open file descriptors for the container | `container_fs_inodes_free` | Gauge | Number of available Inodes | `container_fs_inodes_total` | Gauge | Total number of Inodes | `container_fs_io_current` | Gauge | Number of I/Os currently in progress | `container_fs_io_time_seconds_total` | Counter | Cumulative count of seconds spent doing I/Os | seconds `container_fs_io_time_weighted_seconds_total` | Counter | Cumulative weighted I/O time | seconds `container_fs_limit_bytes` | Gauge | Number of bytes that can be consumed by the container on this filesystem | bytes `container_fs_reads_bytes_total` | Counter | Cumulative count of bytes read | bytes `container_fs_reads_total` | Counter | Cumulative count of reads completed | `container_fs_read_seconds_total` | Counter | Cumulative count of seconds spent reading | `container_fs_reads_merged_total` | Counter | Cumulative count of reads merged `container_fs_sector_reads_total` | Counter | Cumulative count of sector reads completed `container_fs_sector_writes_total` | Counter | Cumulative count of sector writes completed `container_fs_usage_bytes` | Gauge | Number of bytes that are consumed by the container on this filesystem | bytes `container_fs_write_seconds_total` | Counter | Cumulative count of seconds spent writing | seconds `container_fs_writes_bytes_total` | Counter | Cumulative count of bytes written | bytes `container_fs_writes_merged_total` | Counter | Cumulative count of writes merged | `container_fs_writes_total` | Counter | Cumulative count of writes completed | `container_last_seen` | Gauge | Last time a container was seen by the exporter | timestamp `container_memory_cache` | Gauge | Total page cache memory | bytes `container_memory_failcnt` | Counter | Number of memory usage hits limits | `container_memory_failures_total` | Counter | Cumulative count of memory allocation failures | `container_memory_max_usage_bytes` | Gauge | Maximum memory usage recorded | bytes `container_memory_rss` | Gauge | Size of RSS | bytes `container_memory_swap` | Gauge | Container swap usage | bytes `container_memory_mapped_file` | Gauge | Size of memory mapped files | bytes `container_memory_usage_bytes` | Gauge | Current memory usage, including all memory regardless of when it was accessed | bytes `container_memory_working_set_bytes` | Gauge | Current working set | bytes `container_network_receive_bytes_total` | Counter | Cumulative count of bytes received | bytes `container_network_receive_packets_dropped_total` | Counter | Cumulative count of packets dropped while receiving | `container_network_receive_packets_total` | Counter | Cumulative count of packets received | `container_network_receive_errors_total` | Counter | Cumulative count of errors encountered while receiving | `container_network_transmit_bytes_total` | Counter | Cumulative count of bytes transmitted | bytes `container_network_transmit_packets_total` | Counter | Cumulative count of packets transmitted | `container_network_transmit_packets_dropped_total` | Counter | Cumulative count of packets dropped while transmitting | `container_network_transmit_errors_total` | Counter | Cumulative count of errors encountered while transmitting | `container_network_tcp_usage_total` | Gauge | tcp connection usage statistic for container | `container_network_tcp6_usage_total` | Gauge | tcp6 connection usage statistic for container | `container_network_udp_usage_total` | Gauge | udp connection usage statistic for container | `container_network_udp6_usage_total` | Gauge | udp6 connection usage statistic for container | `container_processes` | Gauge | Number of processes running inside the container | `container_spec_cpu_period` | Gauge | CPU period of the container | `container_spec_cpu_quota` | Gauge | CPU quota of the container | `container_spec_cpu_shares` | Gauge | CPU share of the container | `container_spec_memory_limit_bytes` | Gauge | Memory limit for the container | bytes `container_spec_memory_swap_limit_bytes` | Gauge | Memory swap limit for the container | bytes `container_spec_memory_reservation_limit_bytes` | Gauge | Memory reservation limit for the container | bytes `container_start_time_seconds` | Gauge | Start time of the container since unix epoch | seconds `container_tasks_state` | Gauge | Number of tasks in given state (`sleeping`, `running`, `stopped`, `uninterruptible`, or `ioawaiting`) |