Sobes.tech
Middle

Prometheus'e metrikleri iletmek için müşterileri nasıl yapılandırılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Prometheus’a metrik iletmek için exporter’lar kullanmak gerekir. Exporter’lar, Prometheus’un anlayabileceği formatta metrikleri içeren bir HTTP uç noktası açan küçük servislerdir.

Ana yöntemler:

  1. Resmi ve üçüncü taraf exporter’ların kullanımı:

    • Birçok popüler servis ve sistem için hazır exporter’lar mevcuttur: node_exporter (İşletim sistemi metrikleri), mysqld_exporter (MySQL metrikleri), kube-state-metrics (Kubernetes metrikleri) vb.
    • Yapılandırma, hedef sunucuya exporter’ı kurmayı ve Prometheus yapılandırmasında adresini belirtmeyi içerir.
  2. Uygulamaların enstrümantasyonu:

    • Geliştiriciler, doğrudan metrikleri yayınlamak için uygulamalarına kod ekleyebilirler.
    • Prometheus, çeşitli programlama dilleri için istemci kitaplıkları sağlar (Go, Java, Python, Ruby vb.).
    • Bu kitaplıklar, sayaçlar (counters), ölçümler (gauges), histogramlar (histograms) ve özetler (summaries) oluşturmaya ve ardından Prometheus tarafından toplanmak üzere HTTP uç noktası açmaya imkan tanır.
  3. Textfile Collector (node_exporter için):

    • node_exporter’ın textfile adlı bir toplayıcısı vardır; bu, belirli bir formatta dosyalardan metrikleri okuyabilir.
    • Bu, periyodik betikler veya metrikler üreten görevler için faydalıdır.
  4. Pushgateway:

    • Pushgateway, kısa ömürlü veya toplu görevler için kullanılır; bu görevler, doğrudan Prometheus tarafından toplanamayabilir (çünkü var olmayabilirler).
    • Uygulama, metriklerini Pushgateway’e gönderir ve Prometheus, Pushgateway’den verileri toplar.
# Prometheus yapılandırma örneği (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Toplama görevi adı
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # node_exporter’ın çalıştığı ana makineler/portlar

  - job_name: 'application_metrics' # Uygulama metriklerini toplama görevi
    metrics_path: /metrics # Uygulamanın metrikleri yayınladığı yol
    static_configs:
      - targets: ['application-host:8080'] # Uygulama adresi

  - job_name: 'pushgateway' # Pushgateway’den metrikleri toplama görevi
    honor_labels: true # Pushgateway’den gelen etiketlerin doğru işlenmesi için önemlidir
    static_configs:
      - targets: ['pushgateway-host:9091'] # Pushgateway adresi

Uygulamaları exporter’lar ile yapılandırdıktan veya enstrümante ettikten sonra, Prometheus belirtilen uç noktaları düzenli olarak sorgulayacak (scraping) ve metrikleri toplayacaktır.