Sobes.tech
Middle

Hoe configureer je clients om metrics naar Prometheus te sturen?

sobes.tech AI

Antwoord van AI

Om metrics naar Prometheus te sturen, moeten exporters worden gebruikt. Exporters zijn kleine services die een HTTP-eindpunt openen dat metrics bevat in een formaat dat door Prometheus wordt begrepen.

Belangrijkste methoden:

  1. Gebruik van officiële en derden-exporters:

    • Er zijn kant-en-klare exporters voor veel populaire services en systemen: node_exporter (systeemmetrics), mysqld_exporter (MySQL-gegevens), kube-state-metrics (Kubernetes-gegevens), enz.
    • De configuratie bestaat uit het installeren van de exporter op de doelserver en het specificeren van het adres ervan in de Prometheus-configuratie.
  2. Instrumentatie van applicaties:

    • Ontwikkelaars kunnen code toevoegen aan hun applicaties om direct metrics uit te zetten.
    • Prometheus biedt clientbibliotheken voor verschillende programmeertalen (Go, Java, Python, Ruby, enz.).
    • Deze bibliotheken maken het mogelijk om counters, gauges, histogrammen en samenvattingen te maken, en vervolgens een HTTP-eindpunt te openen voor verzameling door Prometheus.
  3. Textfile Collector (voor node_exporter):

    • node_exporter heeft een collector textfile die metrics kan lezen uit bestanden in een bepaald formaat.
    • Dit is handig voor periodieke scripts of taken die metrics genereren.
  4. Pushgateway:

    • Pushgateway wordt gebruikt voor kortdurende of batchtaken die niet rechtstreeks door Prometheus kunnen worden verzameld (omdat ze mogelijk niet bestaan op het moment van verzamelen).
    • De applicatie stuurt haar metrics naar Pushgateway, en Prometheus verzamelt gegevens uit Pushgateway.
# Voorbeeld van Prometheus-configuratie (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Naam van de verzameltaken
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Lijst van hosts/poorten waar node_exporter draait

  - job_name: 'application_metrics' # Taak voor het verzamelen van applicatiemetrics
    metrics_path: /metrics # Pad waarop de applicatie metrics uitzendt
    static_configs:
      - targets: ['application-host:8080'] # Adres van de applicatie

  - job_name: 'pushgateway' # Taak voor het verzamelen van metrics uit Pushgateway
    honor_labels: true # Belangrijk voor correcte verwerking van labels van Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Adres van Pushgateway

Na het configureren van exporters of het instrumenteren van applicaties, zal Prometheus periodiek (scraping) de aangegeven endpoints bevragen om metrics te verzamelen.