Sobes.tech
Middle

Jak nakonfigurovat klienty pro přenos metrik do Prometheus?

sobes.tech AI

Odpověď od AI

Pro přenos metrik do Prometheus je nutné používat exportéry. Exportéry jsou malé služby, které otevírají HTTP endpoint obsahující metriky ve formátu srozumitelném pro Prometheus.

Hlavní způsoby:

  1. Použití oficiálních a třetích stran exportérů:

    • Existuje mnoho hotových exportérů pro populární služby a systémy: node_exporter (metriky OS), mysqld_exporter (MySQL metriky), kube-state-metrics (metriky Kubernetes) atd.
    • Konfigurace spočívá v instalaci exportéru na cílový server a uvedení jeho adresy v konfiguraci Prometheus.
  2. Instrumentace aplikací:

    • Vývojáři mohou přidat kód do svých aplikací, aby přímo vystavovaly metriky.
    • Prometheus poskytuje knihovny klientů pro různé programovací jazyky (Go, Java, Python, Ruby atd.).
    • Tyto knihovny umožňují vytvářet čítače (counters), měřiče (gauges), histogramy a souhrny (summaries), a poté otevírat HTTP endpoint pro sběr dat Prometheus.
  3. Textfile Collector (pro node_exporter):

    • node_exporter má kolektor textfile, který může číst metriky ze souborů ve specifickém formátu.
    • To je užitečné pro periodické skripty nebo úlohy, které generují metriky.
  4. Pushgateway:

    • Pushgateway se používá pro krátkodobé nebo dávkové úlohy, které nemohou být přímo sbírány Prometheus (protože nemusí existovat v době sběru).
    • Aplikace posílá své metriky do Pushgateway, a Prometheus sbírá data z Pushgateway.
# Příklad konfigurace Prometheus (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Název úlohy sběru
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Seznam hostitelů/portů, kde běží node_exporter

  - job_name: 'application_metrics' # Úloha pro sběr metrik aplikace
    metrics_path: /metrics # Cesta, na které aplikace vystavuje metriky
    static_configs:
      - targets: ['application-host:8080'] # Adresa aplikace

  - job_name: 'pushgateway' # Úloha pro sběr metrik z Pushgateway
    honor_labels: true # Důležité pro správné zpracování štítků z Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Adresa Pushgateway

Po nakonfigurování exportérů nebo instrumentaci aplikací bude Prometheus pravidelně dotazovat (scraping) uvedené endpointy za účelem sběru metrik.