Table of Contents
Container technologies have revolutionized the field of software development. By using containers, you can bundle together an application's source code with its libraries, dependencies, and configurations, ensuring that it runs predictably and reliably on different machines.
But how can you be sure that your containers are running smoothly once they're deployed? That's where container monitoring tools like cAdvisor come in. Below, we'll go over what cAdvisor is and the different use cases for cAdvisor.
If you're interested in using Prometheus, but the setup and management of it would be too resource-consuming, book a demo and talk to us about how Hosted Prometheus can fit into your monitoring environment. You can also get right onto a free trial, and check it out now.
What Is cAdvisor?
Developed and maintained by Google, cAdvisor (container Advisor) is a running daemon that collects real-time monitoring data of containers. The project is an open-source monitoring tool that displays information in its own web interface. You can view the cAdvisor source code on GitHub at the google/cadvisor project.
cAdvisor comes as a standalone deployment. It has native support for Docker containers and supports other container environments such as Kubernetes out of the box. This means that cAdvisor can collect valuable data analytics on any running container—including CPU usage, memory, file system usage, physical and virtual network interfaces, and more—while running on a single Docker image.
Below is an example of running cAdvisor with a Docker container:
sudo docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ --privileged \ --device=/dev/kmsg \ gcr.io/cadvisor/cadvisor:$VERSION
If you are using Linux distros such as Fedora, CentOS, and Red Hat Enterprise Linux, you may need to run the container with the flags --privileged=true and --volume=/cgroup:/cgroup:ro \. Once you execute this command, cAdvisor will be running in the background on http://localhost:8080/. See the project's Quick Start tutorial on GitHub for more details.
After cAdvisor is deployed, you can start monitoring container metrics such as resource usage and memory usage right away. At runtime, cAdvisor can look at the resources of every container running on the host. That data can then be visualized through cAdvisor's own web UI, or used with other third-party analytical platforms. For example, to export cAdvisor data to InfluxDB, you can use the flag -storage_driver=influxdb when running cAdvisor.
In particular, cAdvisor is commonly used with Prometheus, as well as with other third-party apps such as Grafana and Graphite. Looking to get started fast with cAdvisor and a hosted Prometheus service? Check out MetricFire's free trial.
What Are the Use Cases of cAdvisor?
The primary use case of cAdvisor is to monitor and explore consumed resources on a Docker host. Since cAdvisor provides histograms of historical resource usage, we can also scrape this data for use in larger, system-wide monitoring platforms.
cAdvisor and Prometheus
Out of the box, cAdvisor can provide container statistics to Prometheus using standardized HTTP endpoints. Then, in Prometheus you can scrape and capture real-time data by creating one or more jobs to process the cAdvisor metric data from the HTTP endpoints.
Prometheus is automatically configured to get data from the cAdvisor running daemon. From here, monitoring container data in Prometheus is easy. Users can see a summary of all information per host, as well as get a global view of all hosts. You can monitor memory consumption, CPU usage, and resource limits, as well as view application-specific interfaces for resource visualization.
Looking for ideas on how to use cAdvisor with Prometheus? Check out our article: Top 10 cAdvisor Metrics for Prometheus.
If you're interested in trying it out for yourself, sign up for our Hosted Prometheus free trial. You can also sign up for a demo and we can talk about the best Prometheus monitoring solutions for you.
cAdvisor and Grafana
Grafana is an open-source analytics platform that can visualize metrics data from cAdvisor and Prometheus. Grafana's customizable dashboards and panels help you transform mountains of raw data metrics into useful, beautiful visualizations and charts based on time series data. You can also configure alerting in Grafana when the platform detects abnormal resource behavior.
For more information, check out our hosted Grafana as a service page.
cAdvisor and Graphite
Graphite is an open-source time-series database that can store, process, and visualize container metrics from the cAdvisor daemon.
Although Graphite is open-source, installation and configuration can be somewhat tricky. The good news is that you can try out a hosted version of Graphite through MetricFire's free trial. MetricFire has added new features and customizations to supercharge your Graphite dashboard, offering a complete infrastructure and monitoring platform for beautiful real-time data visualization.
How MetricFire Can Help!
MetricFire can help you get the most out of cAdvisor, enabling connections to third-party platforms such as Prometheus, Grafana, and Graphite. Our hosted services are ready to connect to cAdvisor out of the box. We do all the heavy lifting on database resource management so that you can focus on data visualization and not the underlying infrastructure.
With built-in alerts and 24/7 support, MetricFire takes the pressure off system-wide performance monitoring. Schedule a demo with one of our support team members and book a free 14-day trial today to learn how MetricFire can help.