Sobes.tech
Middle

Kako podesiti klijente za prenos metrika u Prometheus?

sobes.tech АИ

Одговор од АИ

Да бисте преносили метрике у Prometheus, потребно је да користите експортере (Exporters). Експортери су мали сервиси који отварају HTTP-ендпоинт који садржи метрике у формату који Prometheus разуме.

Главни начини:

  1. Користење званичних и страних експортере:

    • Постоје готови експортери за многе популарне сервисе и системе: node_exporter (метрике ОС), mysqld_exporter (метрике MySQL), kube-state-metrics (метрике Kubernetes) итд.
    • Конфигурација укључује инсталацију експортерa на циљном серверу и навођење његове адресе у конфигурацији Prometheus.
  2. Инструментисање апликација:

    • Развојни тимови могу додавати код у своје апликације за директно излагање метрика.
    • Пројекат Prometheus пружа клијентске библиотеке за различите програмске језике (Go, Java, Python, Ruby итд.).
    • Ове библиотеке омогућавају креирање броилача (counters), сензора (gauges), хистограма (histograms) и сумирања (summaries), а затим отварају HTTP-ендпоинт за прикупљање метрика од Prometheus.
  3. Textfile Collector (за node_exporter):

    • node_exporter има колектор textfile, који може читати метрике из датотека у одређеном формату.
    • Ово је корисно за периодичне скрипте или задатке који генеришу метрике.
  4. Pushgateway:

    • Pushgateway се користи за краткотрајне или пакетне задатке који не могу бити директно прикупљени од стране Prometheus (због тога што можда не постоје у тренутку прикупљања).
    • Апликација шаље своје метрике у Pushgateway, а Prometheus прикупља податке из Pushgateway.
# Пример конфигурације Prometheus (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Име задатка за прикупљање
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Листа хостова/портова где је покренут `node_exporter`

  - job_name: 'application_metrics' # Задаци за прикупљање метрика апликације
    metrics_path: /metrics # Пут којим апликација излаже метрике
    static_configs:
      - targets: ['application-host:8080'] # Адреса апликације

  - job_name: 'pushgateway' # Задак за прикупљање метрика из Pushgateway
    honor_labels: true # Важно за правилну обраду етикета из Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Адреса Pushgateway

Након конфигурације експортерa или инструментисања апликација, Prometheus ће периодично скенирати (scraping) наведене ендпоинте за прикупљање метрика.