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:
-
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.
- Er zijn kant-en-klare exporters voor veel populaire services en systemen:
-
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.
-
Textfile Collector (voor
node_exporter):node_exporterheeft een collectortextfiledie metrics kan lezen uit bestanden in een bepaald formaat.- Dit is handig voor periodieke scripts of taken die metrics genereren.
-
Pushgateway:
Pushgatewaywordt 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 uitPushgateway.
# 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.