For the last six months, the Acme Anvil Corporation has been migrating some of their bare metal infrastructure to Docker containers. It’s time to implement some basic monitoring in the environment. You will handle this in two ways: using `Docker stats` and Prometheus. Your mission is to set up Prometheus and cAdvisor using Docker Compose.
You can get more information on Prometheus at [prometheus.io](https://prometheus.io/).
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Create a `prometheus.yml` File
In the root directory, create
prometheus.yml
.scrape_configs: - job_name: cadvisor scrape_interval: 5s static_configs: - targets: - cadvisor:8080
- Create the Prometheus Services
Create a
docker-compose.yml
file:version: '3' services: prometheus: image: prom/prometheus:latest container_name: prometheus ports: - 9090:9090 command: - --config.file=/etc/prometheus/prometheus.yml volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml depends_on: - cadvisor cadvisor: image: google/cadvisor:latest container_name: cadvisor ports: - 8080:8080 volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker:/var/lib/docker:ro
Stand up the environment.
docker-compose up -d
- Create `stats.sh`
Create
stats.sh
in/root
.docker stats --format "table {{.Name}} {{.ID}} {{.MemUsage}} {{.CPUPerc}}"
Make sure the file can be executed.
chmod a+x stats.sh
Execute the script.
./stats.sh
When you’re finished, exit by pressing Ctrl+C.