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:
-
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.
- Existujú hotové exportéry pre množstvo populárnych služieb a systémov:
-
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.
-
Textfile Collector (pre
node_exporter):node_exportermá kolektortextfile, 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.
-
Pushgateway:
Pushgatewaysa 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 zPushgateway.
# 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.