33 Bereitstellung von Standard- und benutzerdefinierten Metriken in Spring Boot

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.

33.1 Standardmäßig verfügbare Metriken

Spring Boot Actuator erfasst zahlreiche Standardmetriken, die grundlegende Informationen über die Anwendung bereitstellen, wie:

Diese Metriken werden automatisch erfasst und können von Monitoring-Tools wie Prometheus abgerufen werden.

33.2 Benutzerdefinierte Metriken

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.

33.2.1 Schritte zur Erstellung einer benutzerdefinierten Metrik

  1. 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.

  2. MeterRegistry verwenden: Implementieren Sie die Metrik in Ihrem Code, indem Sie die MeterRegistry verwenden, um eine benutzerdefinierte Metrik zu definieren.

33.2.2 Beispiel: Erstellung einer benutzerdefinierten Metrik

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.

33.3 Zusammenfassung

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.