Spring Boot Actuator ermöglicht es, eine Vielzahl von Metriken automatisch zu erfassen und bereitzustellen, ohne dass Entwickler manuelle Implementierungen vornehmen müssen. Für weiterführende Anforderungen, wie das Angebot spezifischer Datenpunkte, können auch benutzerdefinierte Metriken hinzugefügt werden.
Spring Boot Actuator erfasst zahlreiche Standardmetriken, die grundlegende Informationen über die Anwendung bereitstellen, wie:
http.server.requests: Misst die Anzahl
und Dauer der HTTP-Anfragen an die Controller.jvm.memory.used: Zeigt den genutzten
Speicher der JVM.system.cpu.usage: Die Nutzung der CPU
durch das System.process.files.max: Die maximale Anzahl
von Dateideskriptoren.Diese Metriken werden automatisch erfasst und können von Monitoring-Tools wie Prometheus abgerufen werden.
Um benutzerdefinierte Metriken bereitzustellen, können Entwickler die Micrometer-Bibliothek nutzen, die mit Spring Boot Actuator integriert ist. Micrometer fungiert als Anwendungs-Metriken-Fassade und bietet die Möglichkeit, Metriken einfach zu definieren und zu exportieren.
Abhängigkeit einbinden: Stellen Sie sicher, dass
Micrometer in Ihrem Projekt integriert ist. Für Prometheus wäre das die
micrometer-registry-prometheus-Abhängigkeit.
MeterRegistry verwenden: Implementieren Sie die
Metrik in Ihrem Code, indem Sie die MeterRegistry
verwenden, um eine benutzerdefinierte Metrik zu definieren.
Angenommen, Sie haben einen Service, der Bestellungen verarbeitet und möchten die Anzahl der bearbeiteten Bestellungen als Metrik erfassen.
import org.springframework.stereotype.Service;
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
@Service
public class OrderService {
private final Counter orderCounter;
public OrderService(MeterRegistry meterRegistry) {
// Erstellung eines Counters für die Metrik "orders.processed"
this.orderCounter = Counter.builder("orders.processed")
.description("Anzahl der verarbeiteten Bestellungen")
.register(meterRegistry);
}
public void processOrder(Order order) {
// Logik zur Bestellverarbeitung
// ...
// Inkrementieren des Counters nach erfolgreicher Verarbeitung
this.orderCounter.increment();
}
}In diesem Beispiel wird ein Counter verwendet, um die
Anzahl der verarbeiteten Bestellungen zu zählen. Die Metrik wird
automatisch von Spring Boot Actuator unter dem Namen
orders.processed verfügbar gemacht und kann von Prometheus
oder einem anderen Monitoring-Tool erfasst werden.
Spring Boot Actuator und Micrometer vereinfachen die Erfassung und Bereitstellung sowohl von Standardmetriken als auch von benutzerdefinierten Metriken. Durch die Verwendung dieser Tools können Entwickler leistungsstarke Monitoring-Lösungen implementieren, die tiefe Einblicke in die Leistung und das Verhalten ihrer Anwendungen bieten, ohne manuellen Aufwand für die Erfassung jeder einzelnen Metrik.