[JAVA] Obtenez facilement n'importe quelle métrique avec Spring Boot + Micromètre + Prometheus Exporter

Ici, j'écrirai sur la façon d'obtenir des métriques arbitraires avec la combinaison de Spring Boot + Micrometer + Prometheus Exporter.

Settings Pour activer Micrometer dans un environnement avec Spring Boot installé, configurez les bibliothèques requises telles que pom et gradle.

example Voici un exemple de pom.

pom.xml


<!--Obligatoire-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-core</artifactId>
    <version>${micrometer.version}</version>
</dependency>
<!-- spring boot 1.Requis si vous utilisez 5x-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-spring-legacy</artifactId>
    <version>${micrometer.version}</version>
</dependency>
<!--Ci-dessous, requis pour activer Prometheus Exporter-->
<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 Cette bibliothèque est essentielle lors de l'utilisation du micromètre.

micrometer-spring-legacy micormeter a été traité comme un outil métrique officiel depuis Spring Boot 2, x. Pour cette raison, si vous utilisez une version antérieure à 2.x (1.5.x), vous avez besoin d'une bibliothèque pour le backport. Si vous exécutez dans un environnement 1.5.x, spécifiez ceci.

micrometer-registry-prometheus / simpleclient /simpleclient_common Pour savoir comment propager et afficher les métriques acquises, sélectionnez-en une dans la bibliothèque micrometer-registry - **.

Puisque nous voulons utiliser Prometheus Exporter ici, spécifiez le registre lié à prometheus.

De plus, lors de l'exécution de traitements liés à prometheus en Java, il est nécessaire de spécifier les bibliothèques (simpleclient, simpleclient_common) fournies par prometheus.

Code Voici comment l'intégrer dans votre code d'application.

Initialiser le compteur

Incrémenter à l'aide du compteur initialisé

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 Si vous avez ajouté micrometer-registry-prometheus à votre bibliothèque, le point de terminaison / prometheus est automatiquement activé au démarrage de Spring Boot.

Par défaut, vous pouvez obtenir des métriques sur l'état de la JVM et du thread.

En outre, des métriques personnalisées telles que celles mentionnées ci-dessus seront également disponibles via Prometheus Exporter.

# TYPE api_sada_count_total counter
api_sada_count_total 15.0

Ce qui précède est un exemple où le nombre de fois que le contrôleur ci-dessus a été appelé a été obtenu sous forme de métrique.

Les métriques acquises de cette manière peuvent être importées dans Prometheus et Datadog.

Au lieu de résumer

C'est le moyen le plus simple d'utiliser Micrometer, mais il existe de nombreuses autres fonctionnalités, donc si vous voulez en savoir plus, consultez la documentation officielle.

https://micrometer.io/docs

Recommended Posts

Obtenez facilement n'importe quelle métrique avec Spring Boot + Micromètre + Prometheus Exporter
Démarrez avec Spring Boot
Obtenez des résultats de validation avec Spring Boot
Télécharger avec Spring Boot
[Spring Boot] Obtenez des informations utilisateur avec l'API Rest (débutant)
Générer un code à barres avec Spring Boot
Hello World avec Spring Boot
Implémenter GraphQL avec Spring Boot
Exécutez LIFF avec Spring Boot
Connexion SNS avec Spring Boot
Téléchargement de fichiers avec Spring Boot
Spring Boot commençant par copie
Spring Boot à partir de Docker
Hello World avec Spring Boot
Définir des cookies avec Spring Boot
Utiliser Spring JDBC avec Spring Boot
Ajouter un module avec Spring Boot
Premiers pas avec Spring Boot
Créer un micro service avec Spring Boot
Envoyer du courrier avec Spring Boot
J'ai essayé de démarrer avec Swagger en utilisant Spring Boot
Développement facile d'applications Web avec STS et Spring Boot. Dans 10 minutes.
Créez une application avec Spring Boot 2
Liaison de base de données avec doma2 (Spring boot)
Programmation Spring Boot avec VS Code
Jusqu'à "Hello World" avec Spring Boot
(Intellij) Hello World avec Spring Boot
Créez une application avec Spring Boot
Google Cloud Platform avec Spring Boot 2.0.0
J'ai essayé GraphQL avec Spring Boot
[Java] Intégration LINE avec Spring Boot
À partir de Spring Boot 0. Utilisez Spring CLI
J'ai essayé Flyway avec Spring Boot
La coopération des messages a commencé avec Spring Boot
Traitement lors du démarrage d'une application avec Spring Boot
Hello World avec Eclipse + Spring Boot + Maven
Envoyez des notifications régulières avec LineNotify + Spring Boot
Effectuer un test de confirmation de transaction avec Spring Boot
Essayez d'utiliser Spring Boot avec VS Code
Démarrez le développement d'applications Web avec Spring Boot
Lancez l'application Nginx + Spring Boot avec docker-compose
J'ai essayé l'initialisation paresseuse avec Spring Boot 2.2.0
Implémenter CRUD avec Spring Boot + Thymeleaf + MySQL
Traitement asynchrone avec Spring Boot en utilisant @Async
Implémenter la fonction de pagination avec Spring Boot + Thymeleaf
(IntelliJ + gradle) Hello World avec Spring Boot
Utiliser le cache avec EhCashe 2.x avec Spring Boot
Test de validation de classe de formulaire avec Spring Boot
Exécutez l'application WEB avec Spring Boot + Thymeleaf
Obtenez une authentification BASIC avec Spring Boot + Spring Security