Sobes.tech
Middle

Ako nakonfigurovať klientov na odosielanie metrík do Prometheus?

sobes.tech AI

Odpoveď od AI

Ak chcete prenášať metriky do Prometheus, je potrebné použiť exportéry (Exporters). Exportéry sú malé služby, ktoré otvárajú HTTP-enderpoint obsahujúci metriky vo formáte, ktorý Prometheus rozumie.

Hlavné spôsoby:

  1. Použitie oficiálnych a tretích exportérov:

    • Existujú hotové exportéry pre množstvo populárnych služieb a systémov: node_exporter (metriky OS), mysqld_exporter (metriky MySQL), kube-state-metrics (metriky Kubernetes) a pod.
    • Konfigurácia spočíva v inštalácii exportéra na cieľovom serveri a uvedení jeho adresy v konfigurácii Prometheus.
  2. Instrumentovanie aplikácií:

    • Vývojári môžu pridávať kód do svojich aplikácií na priame vystavovanie metrik.
    • Projekt Prometheus poskytuje klientske knižnice pre rôzne programovacie jazyky (Go, Java, Python, Ruby a pod.).
    • Tieto knižnice umožňujú vytvárať čítače (counters), senzory (gauges), histogramy (histograms) a prehľady (summaries), a následne otvoriť HTTP-enderpoint na zber metrik od Prometheus.
  3. Textfile Collector (pre node_exporter):

    • node_exporter má kolektor textfile, ktorý môže čítať metriky zo súborov v určitom formáte.
    • To je užitočné pre periodické skripty alebo úlohy, ktoré generujú metriky.
  4. Pushgateway:

    • Pushgateway sa používa pre krátkodobé alebo balíčkové úlohy, ktoré nemôžu byť priamo zozbierané Prometheus (pretože nemusia existovať v čase zberu).
    • Aplikácia odosiela svoje metriky do Pushgateway, a Prometheus zbiera údaje z Pushgateway.
# Príklad konfigurácie Prometheus (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Názov úlohy zberu
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Zoznam hostiteľov/portov, kde beží `node_exporter`

  - job_name: 'application_metrics' # Úloha na zber metrik aplikácie
    metrics_path: /metrics # Cesta, ktorou aplikácia vystavuje metriky
    static_configs:
      - targets: ['application-host:8080'] # Adresa aplikácie

  - job_name: 'pushgateway' # Úloha na zber metrik z Pushgateway
    honor_labels: true # Dôležité pre správne spracovanie štítkov z Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Adresa Pushgateway

Po nakonfigurovaní exportérov alebo instrumentovaní aplikácií bude Prometheus periodicky skenovať (scraping) uvedené endpoiny na zber metrik.