[JAVA] Mit Spring Boot + Mikrometer + Prometheus Exporter erhalten Sie ganz einfach jede Metrik

Hier werde ich darüber schreiben, wie man mit der Kombination von Spring Boot + Mikrometer + Prometheus Exporter beliebige Metriken erfasst.

Settings Um Micrometer in einer Umgebung mit installiertem Spring Boot zu aktivieren, konfigurieren Sie die erforderlichen Bibliotheken wie pom und gradle.

example Hier ist ein Beispiel für Pom.

pom.xml


<!--Verpflichtend-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-core</artifactId>
    <version>${micrometer.version}</version>
</dependency>
<!-- spring boot 1.Erforderlich bei Verwendung von 5x-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-spring-legacy</artifactId>
    <version>${micrometer.version}</version>
</dependency>
<!--Unten erforderlich, um Prometheus Exporter zu aktivieren-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>${micrometer.version}</version>
</dependency>
<dependency>
    <groupId>io.prometheus</groupId>
    <artifactId>simpleclient</artifactId>
    <version>${prometheus.version}</version>
</dependency>
<dependency>
    <groupId>io.prometheus</groupId>
    <artifactId>simpleclient_common</artifactId>
    <version>${prometheus.version}</version>
</dependency>

micrometer-core Diese Bibliothek ist bei der Verwendung von Mikrometern unerlässlich.

micrometer-spring-legacy Der Mikrometer wurde seit Spring Boot 2, x als offizielles metrisches Werkzeug behandelt. Wenn Sie eine ältere Version als 2.x (1.5.x) verwenden, benötigen Sie aus diesem Grund eine Bibliothek für den Backport. Wenn Sie in einer 1.5.x-Umgebung ausgeführt werden, geben Sie dies an.

micrometer-registry-prometheus / simpleclient /simpleclient_common Um die erfassten Metriken zu verbreiten und anzuzeigen, wählen Sie eine beliebige in der Bibliothek "Mikrometer-Registrierung - **" aus.

Da wir hier Prometheus Exporter verwenden möchten, geben Sie die prometheus-bezogene Registrierung an.

Wenn Sie eine Prometheus-bezogene Verarbeitung in Java durchführen, müssen Sie außerdem die von prometheus bereitgestellten Bibliotheken (simpleclient, simpleclient_common) angeben.

Code So binden Sie es in Ihren Anwendungscode ein.

Zähler initialisieren

Inkrementieren mit dem initialisierten Zähler

SadaController.java


@RestController
public class SadaController {
    @Autowired
    protected MeterRegistry meterRegistry;
 
    private Counter metricsCounter;

    @PostConstruct
    public void init() { 
        metricsCounter = meterRegistry.counter("api.sada.count"); // initialize
    }
 
    @RequestMapping(path = "/sada", method = { RequestMethod.GET })
    @ApiOperation(value = "sada")
    @ApiResponses(value = { @ApiResponse(code = 200, response = String.class, message = "echo") })
    public String sada(@RequestParam(name = "echo", required = false, defaultValue = "masashi") @Valid String echo) {
        metricsCounter.increment(); // increment
        return echo;
    }

Prometheus Exporter Wenn Sie Ihrer Bibliothek Mikrometer-Registry-Prometheus hinzugefügt haben, wird der Endpunkt / prometheus beim Start von Spring Boot automatisch aktiviert.

Standardmäßig können Sie Metriken zum Status der JVM und des Threads abrufen.

Darüber hinaus sind benutzerdefinierte Metriken wie die oben genannten auch über Prometheus Exporter verfügbar.

# TYPE api_sada_count_total counter
api_sada_count_total 15.0

Das Obige ist ein Beispiel, bei dem die Häufigkeit, mit der der obige Controller aufgerufen wurde, als Metrik erhalten wurde.

Auf diese Weise erfasste Metriken können in Prometheus und Datadog importiert werden.

Anstatt zusammenzufassen

Dies ist die einfachste Art, Mikrometer zu verwenden, aber es gibt viele andere Funktionen. Wenn Sie mehr wissen möchten, lesen Sie die offizielle Dokumentation.

https://micrometer.io/docs

Recommended Posts

Mit Spring Boot + Mikrometer + Prometheus Exporter erhalten Sie ganz einfach jede Metrik
Beginnen Sie mit Spring Boot
Erhalten Sie Validierungsergebnisse mit Spring Boot
Mit Spring Boot herunterladen
[Spring Boot] Benutzerinformationen mit Rest API abrufen (Anfänger)
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
Spring Boot beginnend mit Docker
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
Erstellen Sie mit Spring Boot einen Mikrodienst
Mail mit Spring Boot verschicken
Ich habe versucht, mit Swagger mit Spring Boot zu beginnen
Einfache Entwicklung von Webanwendungen mit STS und Spring Boot. In 10 Minuten.
Erstellen Sie eine App mit Spring Boot 2
Datenbankverknüpfung mit doma2 (Spring Boot)
Spring Boot Programmierung mit VS Code
Bis "Hallo Welt" mit Spring Boot
(Intellij) Hallo Welt mit Spring Boot
Erstellen Sie eine App mit Spring Boot
Google Cloud Platform mit Spring Boot 2.0.0
Ich habe GraphQL mit Spring Boot ausprobiert
[Java] LINE-Integration mit Spring Boot
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Ich habe Flyway mit Spring Boot ausprobiert
Die Nachrichtenkooperation begann mit Spring Boot
Verarbeitung beim Starten einer Anwendung mit Spring Boot
Hallo Welt mit Eclipse + Spring Boot + Maven
Senden Sie regelmäßige Benachrichtigungen mit LineNotify + Spring Boot
Führen Sie einen Transaktionsbestätigungstest mit Spring Boot durch
Versuchen Sie es mit Spring Boot mit VS-Code
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Starten Sie die Nginx + Spring Boot-Anwendung mit Docker-Compose
Ich habe Lazy Initialization mit Spring Boot 2.2.0 ausprobiert
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Asynchrone Verarbeitung mit Spring Boot unter Verwendung von @Async
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
(IntelliJ + gradle) Hallo Welt mit Spring Boot
Verwenden Sie den Cache mit EhCashe 2.x mit Spring Boot
Formularklassenvalidierungstest mit Spring Boot
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus
Erreichen Sie die BASIC-Authentifizierung mit Spring Boot + Spring Security