d3vilh/cadvisor-arm

By d3vilh

Updated over 1 year ago

cAdvisor image for ARM64v8 computers including Raspberry Pi.

Image

275

DEPRICATED

BEWARE. this legacy branch was deprecated in favour of this build

New maintained version image supports ARM64v8, ARM32v5 and AMD64 architectures.

cAdvisor (Container Advisor) build for ARM64v8 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.

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 this Docker compose:

---
version: "3.1"

networks:
  back-tier:

services:
  cadvisor:
    container_name: cadvisor
    image: d3vilh/cadvisor-arm:latest
    restart: unless-stopped
    privileged: true
    command:
      - '--raw_cgroup_prefix_whitelist=/docker/'
      - '--docker_only=true'
      - '--disable_metrics=memory_numa,advtcp,cpuset,referenced_memory,cpu_topology,tcp,udp,percpu,process,hugetlb,sched'
      - '--housekeeping_interval=30s'
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys/fs/cgroup:/cgroup:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /etc/machine-id:/etc/machine-id:ro
    devices:
      - '/dev/kmsg:/dev/kmsg'
    ports:
      - '8081:8080/tcp'
    networks:
      - back-tier

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

Example visualisation in Grafana

IMAGE1IMAGE2

You can run it with following Prometheus setup, as example:

services:
  prometheus:
    container_name: prometheus
    image: prom/prometheus:latest
    restart: always
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--storage.tsdb.retention.time=90'
      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
      - '--web.console.templates=/usr/share/prometheus/consoles'
    volumes:
      - ./prometheus/:/etc/prometheus/
      - prometheus_data:/prometheus
    ports:
      - 9090:9090
    links:
      - ping:ping
      - speedtest:speedtest
    networks:
      - back-tier

Prometheus config

Docker Pull Command

docker pull d3vilh/cadvisor-arm