Middle
Wie richtet man Clients ein, um Metriken an Prometheus zu übertragen?
sobes.tech KI
Antwort von AI
Um Daten an Prometheus zu übertragen, müssen Exporter verwendet werden. Exporter sind kleine Dienste, die einen HTTP-Endpunkt öffnen, der Metriken in einem für Prometheus verständlichen Format enthält.
Hauptmethoden:
-
Verwendung offizieller und Drittanbieter-Exporter:
- Es gibt fertige Exporter für viele beliebte Dienste und Systeme:
node_exporter(Betriebssystemmetriken),mysqld_exporter(MySQL-Metriken),kube-state-metrics(Kubernetes-Metriken) usw. - Die Konfiguration besteht darin, den Exporter auf dem Zielserver zu installieren und seine Adresse in der Prometheus-Konfiguration anzugeben.
- Es gibt fertige Exporter für viele beliebte Dienste und Systeme:
-
Instrumentierung von Anwendungen:
- Entwickler können Code in ihre Anwendungen einfügen, um Metriken direkt bereitzustellen.
- Prometheus bietet Client-Bibliotheken für verschiedene Programmiersprachen (Go, Java, Python, Ruby usw.).
- Diese Bibliotheken ermöglichen die Erstellung von Zählern, Messgeräten, Histogrammen und Zusammenfassungen, und öffnen dann einen HTTP-Endpunkt für die Sammlung durch Prometheus.
-
Textfile Collector (für
node_exporter):node_exporterhat einen Collectortextfile, der Metriken aus Dateien in einem bestimmten Format lesen kann.- Dies ist nützlich für periodische Skripte oder Aufgaben, die Metriken generieren.
-
Pushgateway:
Pushgatewaywird für kurzlebige oder Batch-Aufgaben verwendet, die nicht direkt von Prometheus gesammelt werden können (da sie möglicherweise zum Zeitpunkt der Sammlung nicht existieren).- Die Anwendung sendet ihre Metriken an
Pushgateway, und Prometheus sammelt die Daten vonPushgateway.
# Beispiel für eine Prometheus-Konfiguration (prometheus.yml)
scrape_configs:
- job_name: 'node_exporter_servers' # Name des Sammeljobs
static_configs:
- targets: ['server1:9100', 'server2:9100'] # Liste der Hosts/Ports, auf denen `node_exporter` läuft
- job_name: 'application_metrics' # Job zum Sammeln von Anwendungsmetriken
metrics_path: /metrics # Pfad, unter dem die Anwendung Metriken bereitstellt
static_configs:
- targets: ['application-host:8080'] # Adresse der Anwendung
- job_name: 'pushgateway' # Job zum Sammeln von Metriken aus Pushgateway
honor_labels: true # Wichtig für die korrekte Verarbeitung der Labels von Pushgateway
static_configs:
- targets: ['pushgateway-host:9091'] # Adresse des Pushgateway
Nach der Konfiguration der Exporter oder der Instrumentierung der Anwendungen wird Prometheus die angegebenen Endpunkte regelmäßig abfragen (scraping), um Metriken zu sammeln.