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