---
title: cAdvisor
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, monitoring, containers, docker, metrics, go, kubernetes]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/google/cadvisor]
---

# 📊 cAdvisor

> **L'analyseur de ressources pour containers** : CPU, RAM, réseau, FS par container. Par Google. La brique de base du monitoring Docker/Kubernetes.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | (GitHub) |
| **GitHub** | [google/cadvisor](https://github.com/google/cadvisor) |
| **License** | Custom (Apache-2.0 modifié) |
| **Langage** | Go |
| **Étoiles GitHub** | 19.2k ⭐ |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-monitoring|Monitoring]], Containers |

## 📝 Description

**cAdvisor** (Container Advisor) est un **daemon de monitoring de containers** développé par **Google**. Il collecte, agrège et expose les **métriques d'utilisation des ressources** (CPU, mémoire, réseau, filesystem) pour **chaque container** tournant sur un hôte.

cAdvisor est **intégré nativement à Kubernetes** (`kubelet` le lance automatiquement sur chaque node) et c'est la **brique de base** de la stack de monitoring containers. Il est conçu pour être **branché sur Prometheus** via son endpoint `/metrics`.

- ✅ **Métriques par container** : CPU, RAM, réseau, FS, swap
- ✅ **Historique** : ring buffer configurable (par défaut 1-2 min, extensible)
- ✅ **Auto-discovery** : détecte tous les containers Docker/containerd/cri-o
- ✅ **Web UI** : visualisation en temps réel (basique)
- ✅ **Endpoint Prometheus** : `/metrics` au format natif
- ✅ **Léger** : ~50-100 Mo de RAM par hôte
- ✅ **gRPC API** pour intégration
- ✅ **Pas de configuration** : zéro-config après install

**Public cible** : **DevOps, SRE, plateforme, kubernetes admins**. Utilisé en interne par **toutes les stacks de monitoring de containers** (Prometheus, Datadog, New Relic, etc.).

**Comparaison** : cAdvisor est à [[app-netdata]] ce que la **jauge de vitesse** est au **tableau de bord complet** : il fait **une chose très bien** (métriques containers). Pour les métriques système globales, on utilise plutôt `node_exporter` (Prometheus) ou Netdata. Pour les **dashboards avancés**, on agrège cAdvisor dans Prometheus + Grafana. cAdvisor ne se substitue **pas** à [[app-glances]] (qui est plus système) ni à [[app-uptime-kuma]] (qui est orienté uptime).

> ⚠️ **License Custom (Apache-2.0 modifié)** : libre pour usage, mais **interdit de l'utiliser pour concurrencer Google** (notamment Google Cloud). Pour de l'usage interne/self-hosted, c'est OK.

## 🚀 Installation

### Option 1 : Docker (standalone, recommandé pour Docker hosts)

```yaml
# docker-compose.yml
version: '3.8'
services:
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    container_name: cadvisor
    restart: unless-stopped
    ports:
      - "8080:8080"  # Web UI
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    privileged: true
    devices:
      - /dev/kmsg
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.cadvisor.rule=Host(`cadvisor.example.com`)"
      - "traefik.http.routers.cadvisor.entrypoints=websecure"
      - "traefik.http.routers.cadvisor.tls.certresolver=letsencrypt"
```

### Option 2 : Binaire natif (bare-metal)

```bash
# Télécharger depuis la page Releases
wget https://github.com/google/cadvisor/releases/download/v0.49.1/cadvisor-v0.49.1-linux-amd64
chmod +x cadvisor-v0.49.1-linux-amd64
sudo ./cadvisor-v0.49.1-linux-amd64
```

### Option 3 : Kubernetes (intégré)

```bash
# Déjà inclus dans kubelet ! Voir l'endpoint :
# https://<node-ip>:10250/metrics/cadvisor
# Ou via le service cAdvisor standard
kubectl apply -f https://raw.githubusercontent.com/google/cadvisor/master/deploy/kubernetes/base/daemonset.yaml
```

## ⚙️ Configuration Initiale

1. **Accéder à l'UI** : `http://IP:8080`
2. **Voir les containers détectés** : l'UI liste automatiquement tous les containers en cours
3. **Cliquer sur un container** : voir CPU, RAM, network, FS en temps réel
4. **Brancher Prometheus** : scraper l'endpoint `http://cadvisor:8080/metrics`
5. **Exemple prometheus.yml** :
   ```yaml
   scrape_configs:
     - job_name: cadvisor
       static_configs:
         - targets: ['cadvisor:8080']
   ```
6. **Importer les dashboards Grafana** : il existe des dashboards Grafana pré-faits (ID 893, 179, etc.)

## 🔄 Alternatives

### Open Source

- **node_exporter** (Prometheus) — Métriques **hôte** (pas containers)
- [[app-netdata]] — Métriques système + containers, plus complet
- [[app-glances]] — CLI + web, orienté single-host
- **Prometheus + kube-state-metrics** — Pour Kubernetes
- **OpenTelemetry Collector** — Successeur moderne, vendor-neutral

### Comparaison cAdvisor vs alternatives

| Critère | cAdvisor | node_exporter | Netdata |
| :--- | :--- | :--- | :--- |
| Cible | Containers | Hôte (OS) | Hôte + containers |
| Métriques/container | ✅ Riche | ❌ | ✅ Basique |
| Métriques hôte | ❌ (basique) | ✅ Très riche | ✅ Riche |
| RAM | ~100 Mo | ~30 Mo | ~200 Mo |
| Prometheus natif | ✅ | ✅ | ✅ |
| Setup | 2 min | 2 min | 5 min |

**Verdict** : cAdvisor est **la brique indispensable** du monitoring containers, mais **ne suffit pas seul**. À combiner avec `node_exporter` (host metrics) et Prometheus + Grafana pour une stack complète.

### Propriétaires (ce que cAdvisor remplace)

- **Datadog Container Monitoring** (payant par container)
- **New Relic Kubernetes** (payant)
- **Sysdig Secure** (payant)
- **Dynatrace Container Monitoring** (payant)
- **AWS CloudWatch Container Insights** (payant AWS)

## 🔐 Sécurité

- **Pas d'auth par défaut** : protéger via reverse proxy ([[app-traefik]]) ou réseau interne
- **Endpoint `/metrics`** : peut exposer des **noms de containers** et **images** — à protéger
- **Privileged + volumes read-only** : cAdvisor a besoin d'accéder à `/sys`, `/var/run/docker.sock` pour fonctionner
- **HTTPS** via [[app-traefik]] recommandé
- **Métriques à scrubber** : par défaut cAdvisor n'expose pas de PII, mais vérifier les labels custom

## 📚 Ressources

- [GitHub google/cadvisor](https://github.com/google/cadvisor)
- [Documentation](https://github.com/google/cadvisor/blob/master/docs/storage.md)
- [Dashboards Grafana](https://grafana.com/grafana/dashboards/?search=cadvisor)
- [Intégration Kubernetes](https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/)

## Pages Liées

- [[cat-monitoring]] — Catégorie Monitoring
- [[app-prometheus]] — Collecteur de métriques
- [[app-netdata]] — Métriques système riche
- [[app-glances]] — Monitoring CLI/web
- [[app-traefik]] — Reverse proxy HTTPS
- [[observabilite]] — Vue d'ensemble observabilité
- [[checklist-monitoring-minimal]] — Checklist
