Metriksammlung mit Micrometer und Prometheus
In meinem vorherigen Post hier habe ich gezeigt, wie man Micrometer und Prometheus konfiguriert, um Daten zu Microservice-Leistungsmetriken zu sammeln. In diesem Beitrag werde ich zeigen, wie wir Spring Boot Actuator-Metrikdaten sammeln und an die Prometheus-Benutzeroberfläche übertragen und mithilfe von Dashboards anzeigen können.
Spring Boot bietet mit Actuator viele tolle Funktionen. Da Unternehmensanwendungen ständig nach Möglichkeiten suchen, die Anwendung zu überwachen, werden diese Metriken noch wichtiger.
Prometheus mit Docker konfigurieren
Zuerst werden wir Prometheus konfigurieren. Starten Sie je nach verwendeter Umgebung das Docker-Terminal. Verwenden Sie den folgenden Befehl, um Prometheus herunterzuladen
docker pull prom/prometheus
Wir werden Prometheus so konfigurieren, dass Metriken vom Aktuator-Endpunkt unserer Anwendung gekratzt werden. Wie im vorherigen Beitrag hier gezeigt, läuft der Endpunkt des Spring Boot-Aktuators auf http://localhost:8080/actuator/prometheus
Wir werden die Prometheus-Konfiguration in prometheus.yml
hinzufügen Datei wie folgt:
# my global config global: scrape_interval: 5s # Set the scrape interval to every 5 seconds. Default is every 1 minute. evaluation_interval: 5s # Evaluate rules every 5 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] - job_name: 'spring-actuator' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: ['IPADDRESS_OF_HOST:8080']
In dieser Konfigurationsdatei sind einige Dinge zu beachten. scrape_interval
ist 5s. In scrape_configs
, der Jobname für unseren Spring Actuator-Endpunkt ist spring-actuator
und der Endpunkt läuft unter /actuator/prometheus
. Die targets
Abschnitt zeigt, wo unsere Anwendung ausgeführt wird. Speichern Sie diese Datei an einem Ort, den wir zum Mounten verwenden können, während der Docker-Container ausgeführt wird.
Um Prometheus mit Docker auszuführen, verwenden Sie den folgenden Befehl:
docker run --name prometheus -d --mount type=bind,source=//c/Users/sandbox/prometheus.yml,destination=/etc/prometheus/prometheus.yml -p 9090:9090 prom/prometheus
Dadurch wird der Prometheus-Server bei 9090 gestartet und es kann bei 9090 darauf zugegriffen werden. In der Zwischenzeit können wir das Prometheus-Dashboard überprüfen. Lassen Sie uns zuerst die Docker-IP abrufen, indem Sie den folgenden Befehl verwenden
docker-machine ip
Überprüfen Sie nun das Prometheus-Dashboard unter http://docker-ip:9090
, sieht es wie folgt aus:
Schlussfolgerung
In diesem Beitrag haben wir gezeigt, wie man einen Prometheus aus dem Docker-Container ausführt und Metriken aus der Spring Boot-Anwendung löscht.
Referenzen
- Spring Boot und Prometheus – Spring Boot Aktuator und Prometheus
- Überwachung Ihrer Mikrodienste – Überwachung Ihrer Mikrodienste