Prometheus et docker

Il est assez simple de récupérer des métriques pour les containers lancés sur docker

Pour rappel Prometheus récupère les métriques via un appel à une url du type http://myserver:myport/metrics

Pour récupérer les métriques de docker il faut utiliser le container cadvisor. Ce container généré par google permet de récuperer et de suivre simplement le service docker

../_images/201902171833_01.png

Exemple de fichier docker-compose comportant le serveur Prometheus et cadvisor

version: '2'
services:
    promotheus:
        image: "prom/prometheus"
        volumes:
            - ./promotheus/prometheus.yml:/etc/prometheus/prometheus.yml
        ports:
            - "9090:9090"
    cadvisor:
        image: google/cadvisor
        ports:
            - "8080:8080"
        volumes:
            - /:/rootfs:ro
            - /var/run:/var/run:ro
            - /sys:/sys:ro
            - /var/lib/docker/:/var/lib/docker:ro
            - /dev/disk/:/dev/disk:ro

le fichier de configuration de prometheus

global:
  scrape_interval: 5s
  evaluation_interval: 5s
scrape_configs:
  - job_name: docker
    static_configs:
      - targets: ['cadvisor:8080']

Dans notre cas pour voir les métriques utilisés les url http://127.0.0.1:8080/metrics