Sobes.tech
Middle

Cum se configurează clienții pentru a transmite metrici către Prometheus?

sobes.tech AI

Răspuns de la AI

Pentru a transmite metrici către Prometheus, trebuie să utilizați exportatori. Exportatorii sunt servicii mici care deschid un endpoint HTTP care conține metrici într-un format înțeles de Prometheus.

Metode principale:

  1. Utilizarea exportatorilor oficiali și terți:

    • Există exportatori gata făcuți pentru multe servicii și sisteme populare: node_exporter (metrici ale sistemului de operare), mysqld_exporter (metrici MySQL), kube-state-metrics (metrici Kubernetes) etc.
    • Configurarea constă în instalarea exportatorului pe serverul țintă și indicarea adresei sale în configurația Prometheus.
  2. Instrumentarea aplicațiilor:

    • Dezvoltatorii pot adăuga cod în aplicațiile lor pentru a expune direct metrici.
    • Prometheus oferă biblioteci client pentru diverse limbaje de programare (Go, Java, Python, Ruby etc.).
    • Aceste biblioteci permit crearea de contoare, gauge-uri, histogram-uri și rezumate, apoi deschid un endpoint HTTP pentru colectare de către Prometheus.
  3. Textfile Collector (pentru node_exporter):

    • node_exporter are un colector textfile care poate citi metrici din fișiere într-un format specific.
    • Acest lucru este util pentru scripturi periodice sau sarcini care generează metrici.
  4. Pushgateway:

    • Pushgateway este utilizat pentru sarcini de scurtă durată sau în lot, care nu pot fi colectate direct de Prometheus (deoarece s-ar putea să nu existe la momentul colectării).
    • Aplicația trimite metricile sale în Pushgateway, iar Prometheus colectează date din Pushgateway.
# Exemplu de configurație Prometheus (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Numele sarcinii de colectare
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Lista de gazde/porturi unde rulează node_exporter

  - job_name: 'application_metrics' # Sarcina pentru colectarea metricilor aplicației
    metrics_path: /metrics # Calea prin care aplicația expune metrici
    static_configs:
      - targets: ['application-host:8080'] # Adresa aplicației

  - job_name: 'pushgateway' # Sarcina pentru colectarea metricilor din Pushgateway
    honor_labels: true # Important pentru procesarea corectă a etichetelor din Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Adresa Pushgateway

După configurarea exportatorilor sau instrumentarea aplicațiilor, Prometheus va interoga periodic (scraping) endpoint-urile specificate pentru a colecta metrici.