Micrometer Java: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Micrometer für Java: Vollständige Anleitung mit Beispielen

1. Was ist Micrometer und warum wird es benötigt?

Micrometer ist eine Bibliothek zur Erfassung von Metriken in Java-Anwendungen (und JVM-Sprachen). Sie bietet eine einheitliche Fassade über gängige Monitoring-Systeme wie Prometheus, Graphite, Datadog, InfluxDB, New Relic und andere. Micrometer implementiert die Micrometer Observation API und ist der De-facto-Standard für die Metrik-Erfassung im Spring-Boot-Ökosystem (ab Version 2.0).

Warum ist das wichtig? In modernen Microservice-Architekturen ist es entscheidend zu verstehen, was in der Anwendung passiert: Wie viele Anfragen werden verarbeitet? Wie hoch ist die Antwortzeit? Wie viel Speicher wird verbraucht? Wie oft treten Fehler auf? Micrometer vereinheitlicht die Erfassung dieser Daten, ohne an ein bestimmtes Monitoring-Backend gebunden zu sein. Sie schreiben den Code einmal und wechseln zwischen Prometheus, Graphite oder CloudWatch, indem Sie einfach die Abhängigkeit in pom.xml oder build.gradle ändern.

Die Bibliothek bietet eine Vielzahl von Werkzeugen: Zähler (Counter), Histogramme (Histogram), Timer (Timer), Verteilungen (DistributionSummary) sowie Unterstützung für Tags zur mehrdimensionalen Aggregation von Metriken. Die integrierte Integration mit der JVM (Garbage Collection, Threads, Speicher) und gängigen Frameworks (Spring, Hibernate, Jetty, Tomcat) macht sie für das Produktions-Monitoring unverzichtbar.

2. Installation

Micrometer wird über Maven Central verteilt. Für Java-Projekte wird Maven oder Gradle verwendet. Nachfolgend finden Sie die genauen Befehle zum Hinzufügen der Abhängigkeiten.

Maven (pom.xml)

<!-- Micrometer Kernmodul -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-core</artifactId>
    <version>1.14.5</version> <!-- Aktuelle Version auf mvnrepository.com prüfen -->
</dependency>

<!-- Registry für Prometheus -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.14.5</version>
</dependency>

Gradle (build.gradle)

dependencies {
    implementation 'io.micrometer:micrometer-core:1.14.5'
    implementation 'io.micrometer:micrometer-registry-prometheus:1.14.5'
}

Wichtig: Wenn Sie Spring Boot verwenden, reicht es aus, spring-boot-starter-actuator und micrometer-registry-prometheus hinzuzufügen – Spring Boot konfiguriert den MeterRegistry automatisch.

3. Schnellstart – Minimales funktionsfähiges Beispiel

Wir erstellen eine einfache Konsolenanwendung, die Metriken sammelt und im Prometheus-Format exportiert.

import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;

public class QuickStart {
    public static void main(String[] args) throws InterruptedException {
        // 1. Metrik-Registry für Prometheus erstellen
        PrometheusMeterRegistry registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);

        // 2. Zähler erstellen
        Counter counter = Counter.builder("my.counter")
                .description("Beispiel-Zähler")
                .tag("env", "test")
                .register(registry);

        // 3. Zähler in einer Schleife erhöhen
        for (int i = 0; i < 5; i++) {
            counter.increment();
            Thread.sleep(1000);
        }

        // 4. Metriken im Prometheus-Format ausgeben
        System.out.println("=== Prometheus Metriken ===");
        System.out.println(registry.scrape());
    }
}

Konsolenausgabe:

=== Prometheus Metriken ===
# HELP my_counter_total Beispiel-Zähler
# TYPE my_counter_to                    

Empfehlungen