Java >> Java Tutorial >  >> Java

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

  1. Spring Boot und Prometheus – Spring Boot Aktuator und Prometheus
  2. Überwachung Ihrer Mikrodienste – Überwachung Ihrer Mikrodienste


Java-Tag