On peut rapidement tester le fonctionnement d'un serveur Prometheus avec la commande:
docker run --rm --detach --name promtest -p 9090:9090 prom/prometheus:v2.29.0
La commande ci-dessus se charge de télécharger l' image et de créer un conteneur avec une configuration simple. Le service est exposé sur le port 9090.
Prometheus expose lui même des métriques consultables à l'URL http://localhost:9090/metrics
Ci-dessous un exemple de définition d'un service via docker-compose
# creation du répertoire dédié au service $ mkdir -p prometheus/conf # Extraction de la configuration par défaut d'un conteneur jetable $ docker container run --rm --detach --name promtest -p 9090:9090 prom/prometheus:v2.29.0 $ docker cp promtest:/etc/prometheus/prometheus.yml prometheus/conf $ docker container stop promtest
Création d'un volume distinct pour le stockage des données:
$ docker volume create prometheus_data
Création d'un réseau dédié:
$ docker network create vnet-prometheus
version: "3.3" networks: vnet-prometheus: external: name: vnet-prometheus volumes: prometheus_data: external: true services: prometheus: image: prom/prometheus:v2.29.0 restart: unless-stopped ports: - 9090:9090 environment: {} networks: - vnet-prometheus volumes: - type: bind source: $PWD/prometheus/conf/prometheus.yml target: /etc/prometheus/prometheus.yml read_only: true # Volume de stockage indépendant pour les données - type: volume source: prometheus_data target: /prometheus read_only: false
Pour lancer le service:
$ docker-compose -f dc-prometheus.yml up -d prometheus
A ce stade, le service est fonctionnel. Le fichier de configuration minimal est éditable directment dans ./prometheus/conf/prometheus.yml. Le serveur Prometheus exporte et enregistre ses propres métriques.
Pour arrêter le service:
$ docker-compose -f dc-prometheus.yml down
Lors du lancement de Prometheus, de nombreuses options peuvent être définies sur la ligne de commande. Pour visualiser l'état des options consulter la page
Par défaut la période de rétention des données est de 15 jours. Cette période peut être modifiée via l'option --storage.tsdb.retention. Dans l'extrait ci-dessous le docker-compose utilise l'option pour redéfinir la période de rétention par défaut:
version: "3.3" ... services: prometheus: image: prom/prometheus:v2.29.0 restart: unless-stopped ports: [] environment: {} command: - "--config.file=/etc/prometheus/prometheus.yml" - "--storage.tsdb.path=/prometheus" - "--web.console.libraries=/usr/share/prometheus/console_libraries" - "--web.console.templates=/usr/share/prometheus/consoles" - "--web.enable-admin-api" - "--storage.tsdb.retention=90d"