Sobes.tech
Middle

Kaip sukonfigūruoti klientus metrikų perdavimui į Prometheus?

sobes.tech AI

Atsakymas iš AI

Kad perduotumėte metrikas į Prometheus, reikia naudoti eksportorius (Exporters). Eksportoriai yra mažos paslaugos, kurios atidaro HTTP-įvestį, turinčią metrikas formatu, kurį supranta Prometheus.

Pagrindiniai būdai:

  1. Naudoti oficialius ir trečiųjų šalių eksportorius:

    • Yra paruoštų eksportorių daugybei populiarių paslaugų ir sistemų: node_exporter (OS metrikos), mysqld_exporter (MySQL metrikos), kube-state-metrics (Kubernetes metrikos) ir kt.
    • Konfigūracija apima eksportoriaus įdiegimą tiksliniame serveryje ir jo adreso nurodymą Prometheus konfigūracijoje.
  2. Programų instrumentavimas:

    • Kūrėjai gali pridėti kodą savo programoms, kad tiesiogiai pateiktų metrikas.
    • Prometheus projektas teikia klientų bibliotekas įvairioms programavimo kalboms (Go, Java, Python, Ruby ir kt.).
    • Šios bibliotekos leidžia kurti skaitiklius (counters), jutiklius (gauges), histogramos (histograms) ir santraukas (summaries), o tada atverti HTTP-įvestį metrikų rinkimui iš Prometheus.
  3. Textfile Collector (skirtas node_exporter):

    • node_exporter turi textfile kolektorių, kuris gali skaityti metrikas iš failų tam tikru formatu.
    • Tai naudinga periodinėms scenarijams ar užduotims, kurios generuoja metrikas.
  4. Pushgateway:

    • Pushgateway naudojamas trumpalaikių ar paketinių užduočių, kurios negali būti tiesiogiai surinktos Prometheus, nes jų gali būti nėra rinkimo metu.
    • Programos siunčia savo metrikas į Pushgateway, o Prometheus renka duomenis iš Pushgateway.
# Pavyzdinė Prometheus konfigūracija (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Užduoties pavadinimas
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Sąrašas hostų/portų, kur veikia `node_exporter`

  - job_name: 'application_metrics' # Užduotis surinkti programos metrikas
    metrics_path: /metrics # Kelias, kuriuo programa pateikia metrikas
    static_configs:
      - targets: ['application-host:8080'] # Programos adresas

  - job_name: 'pushgateway' # Užduotis surinkti metrikas iš Pushgateway
    honor_labels: true # Svarbu teisingam žymių apdorojimui iš Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Pushgateway adresas

Po eksportorių arba programų instrumentavimo konfigūracijos, Prometheus periodiškai tikrins (scraping) nurodytus endpoinčius, kad surinktų metrikas.