Skip to content
Analyzes resource usage and performance characteristics of running containers.
Go JavaScript Other
Latest commit d08cd24 May 3, 2016 @timstclair timstclair Merge pull request #1256 from timstclair/godep
Clean up cAdvisor Godeps
Failed to load latest commit information.
Godeps Clean up cAdvisor Godeps May 2, 2016
api Rework the v2.1 API to expose container Info. Feb 3, 2016
build Fix build for go 1.6 May 3, 2016
cache re-order the import package Nov 30, 2015
client Fix out of date client/README.md Feb 8, 2016
collector Add a flag to control the number of custom metrics scraped by collectors Feb 11, 2016
container Merge pull request #1261 from sjpotter/listToCommon May 3, 2016
deploy fixed ldconfigs glibc path Feb 23, 2016
docs Merge pull request #1241 from nik-kor/master Apr 26, 2016
events re-order the import package Nov 30, 2015
fs Fix usage of the latest go-dockerclient Apr 4, 2016
healthz Fix imported package names to not use mixedCaps or under_scores Oct 22, 2015
http re-order the import package Nov 30, 2015
info Move docker types to v1 API May 2, 2016
integration Change log level of integration framework log messages Apr 18, 2016
machine Move utils/machine -> machine May 2, 2016
manager Print the event when failed to process it May 2, 2016
metrics add cgroup quota and period support / add missing tests Feb 2, 2016
pages Merge pull request #1245 from ainsleyc/separate-templates May 2, 2016
storage Add labels to tags in influxdb Apr 20, 2016
summary Export type to calculate percentiles Jul 21, 2015
utils Move utils/machine -> machine May 2, 2016
validate Fix cAdivsor docker validation Apr 8, 2016
version Release v0.23.0 Apr 20, 2016
.gitignore git ignore test binaries Apr 4, 2016
.travis.yml Update golang to v1.5.3 Jan 21, 2016
AUTHORS Remove mention of contributors file. We don't have one. Dec 30, 2014
CHANGELOG.md Release v0.23.0 Apr 21, 2016
CONTRIBUTING.md Add CONTRIBUTING.md Jun 10, 2014
LICENSE Migrating cAdvisor code from lmctfy Jun 9, 2014
Makefile Separated asset files into their own folder with the correct file Apr 21, 2016
README.md Add docs about using elasticsearch as a storage driver Apr 26, 2016
cadvisor.go Fixes for --disable_metrics flag May 2, 2016
cadvisor_test.go Fixes for --disable_metrics flag May 3, 2016
logo.png Run PNG crusher on logo.png Feb 10, 2016
storagedriver.go Add the support for kafka in cAdvisor's storage, including output of … Jan 27, 2016
test.htdigest Added HTTP Auth and HTTP Digest authentication #302 Dec 11, 2014
test.htpasswd Added HTTP Auth and HTTP Digest authentication #302 Dec 11, 2014

README.md

cAdvisor

cAdvisor (Container Advisor) provides container users an understanding of the resource usage and performance characteristics of their running containers. It is a running daemon that collects, aggregates, processes, and exports information about running containers. Specifically, for each container it keeps resource isolation parameters, historical resource usage, histograms of complete historical resource usage and network statistics. This data is exported by container and machine-wide.

cAdvisor has native support for Docker containers and should support just about any other container type out of the box. We strive for support across the board so feel free to open an issue if that is not the case. cAdvisor's container abstraction is based on lmctfy's so containers are inherently nested hierarchically.

cAdvisor

Quick Start: Running cAdvisor in a Docker Container

To quickly tryout cAdvisor on your machine with Docker, we have a Docker image that includes everything you need to get started. You can run a single cAdvisor to monitor the whole machine. Simply run:

sudo docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:latest

cAdvisor is now running (in the background) on http://localhost:8080. The setup includes directories with Docker state cAdvisor needs to observe.

Note: If you're running on CentOS, Fedora, RHEL, or are using LXC take a look at our running instructions.

We have detailed instructions on running cAdvisor standalone outside of Docker. cAdvisor running options may also be interesting for advanced usecases. If you want to build your own cAdvisor Docker image see our deployment page.

Building and Testing

See the more detailed instructions in the build page. This includes instructions for building and deploying the cAdvisor Docker image.

InfluxDB and Cluster Monitoring

cAdvisor supports exporting stats to InfluxDB. See the documentation for more information and examples.

cAdvisor also exposes container stats as Prometheus metrics. See the documentation for more information.

cAdvisor also supports exporting stats to ElasticSearch. See the documentation for more information.

Heapster enables cluster wide monitoring of containers using cAdvisor.

Web UI

cAdvisor exposes a web UI at its port:

http://<hostname>:<port>/

See the documentation for more details.

Remote REST API & Clients

cAdvisor exposes its raw and processed stats via a versioned remote REST API. See the API's documentation for more information.

There is also an official Go client implementation in the client directory. See the documentation for more information.

Roadmap

cAdvisor aims to improve the resource usage and performance characteristics of running containers. Today, we gather and expose this information to users. In our roadmap:

  • Advise on the performance of a container (e.g.: when it is being negatively affected by another, when it is not receiving the resources it requires, etc)
  • Auto-tune the performance of the container based on previous advise.
  • Provide usage prediction to cluster schedulers and orchestration layers.

Community

Contributions, questions, and comments are all welcomed and encouraged! cAdvisor developers hang out on Freenode IRC in the #google-containers room & Slack (get an invitation here). We also have the google-containers Google Groups mailing list.

Something went wrong with that request. Please try again.