Sobes.tech
Middle

Comment configurer les clients pour transmettre des métriques à Prometheus?

sobes.tech IA

Réponse de l'IA

Pour transmettre des métriques à Prometheus, il est nécessaire d’utiliser des exportateurs. Les exportateurs sont de petits services qui ouvrent un point d’accès HTTP contenant des métriques dans un format compréhensible par Prometheus.

Principales méthodes :

  1. Utilisation d’exportateurs officiels et tiers :

    • Il existe des exportateurs prêts à l’emploi pour de nombreux services et systèmes populaires : node_exporter (métriques du système d’exploitation), mysqld_exporter (métriques MySQL), kube-state-metrics (métriques Kubernetes), etc.
    • La configuration consiste à installer l’exportateur sur le serveur cible et à indiquer son adresse dans la configuration de Prometheus.
  2. Instrumentation des applications :

    • Les développeurs peuvent ajouter du code dans leurs applications pour exposer directement des métriques.
    • Prometheus fournit des bibliothèques clientes pour divers langages de programmation (Go, Java, Python, Ruby, etc.).
    • Ces bibliothèques permettent de créer des compteurs, des jauges, des histogrammes et des résumés, puis d’ouvrir un point d’accès HTTP pour la collecte par Prometheus.
  3. Textfile Collector (pour node_exporter) :

    • node_exporter dispose d’un collecteur textfile qui peut lire des métriques à partir de fichiers dans un format spécifique.
    • Cela est utile pour des scripts périodiques ou des tâches générant des métriques.
  4. Pushgateway :

    • Pushgateway est utilisé pour des tâches de courte durée ou par lot qui ne peuvent pas être collectées directement par Prometheus (car elles pourraient ne pas exister au moment de la collecte).
    • L’application envoie ses métriques à Pushgateway, et Prometheus collecte les données depuis Pushgateway.
# Exemple de configuration de Prometheus (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Nom de la tâche de collecte
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Liste des hôtes/ports où tourne node_exporter

  - job_name: 'application_metrics' # Tâche pour la collecte des métriques de l’application
    metrics_path: /metrics # Chemin où l’application expose ses métriques
    static_configs:
      - targets: ['application-host:8080'] # Adresse de l’application

  - job_name: 'pushgateway' # Tâche pour la collecte des métriques depuis Pushgateway
    honor_labels: true # Important pour le traitement correct des étiquettes de Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Adresse de Pushgateway

Après avoir configuré les exportateurs ou instrumenté les applications, Prometheus interrogera périodiquement (scraping) les endpoints indiqués pour collecter les métriques.