[JAVA] Construction et impression de Spring Boot Admin ~ Conseils pour afficher les informations de commit Git ~

Spring Boot Admin (Server) et Spring Boot Admin (Client) ont été ajoutés à Spring Initializr, j'ai donc décidé de les toucher. Spring Boot Admin est une bibliothèque qui vous permet de surveiller les applications Spring Boot.

Construire

environnement

OS: macOS Sierra 10.12.6 Java: 1.8.0_102 Spring Boot: 1.5.10.RELEASE Spring Boot Admin: 1.5.7

Procédure de construction

Spring Boot Admin a une configuration serveur-client. Le serveur fournit l'écran de surveillance et le client est l'application à surveiller.

Spring Boot Admin Server

Sélectionnez Spring Boot Admin (Server) dans Spring Initializr pour créer une application.

OK si spring-boot-admin-starter-server est ajouté à depenedency. (Si vous le créez à partir de Spring Initializr comme ci-dessus, il sera ajouté naturellement, vous ne devriez donc pas avoir besoin de modifier pom.xml)

pom.xml


	<dependencies>
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-server</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

Après cela, il est nécessaire de supprimer l'annotation @ SpringBootApplication de la classe ʻApplication` et d'ajouter l'annotation comme suit.

SpringBootAdminServerApplication.java


@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootAdminServerApplication.class, args);
	}
}

Si vous le démarrez en tant qu'application avec cela, le côté serveur est OK. Si vous accédez à http: // localhost: 8080, la page Web de surveillance sera affichée.

Spring Boot Admin Client

Sélectionnez Spring Boot Admin (Client) dans Spring Initializr pour créer une application. Puisque le client lui-même doit être démarré en tant qu'application, en supposant ici une application WEB, ajoutez également Web.

Si vous le créez comme ci-dessus, spring-boot-admin-starter-client (et spring-boot-starter-web) doit être ajouté à dependency.

pom.xml


	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-client</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

Une fois que vous avez entré les informations de connexion au serveur dans application.yml (personnellement, j'aime yml plutôt que les propriétés, donc je l'ai changé), c'est OK.

application.yml


server:
  port: 3000 # ①
spring:
  boot:
    admin:
      url: http://localhost:8080 # ②
management:
  security:
    enabled: false # ③

Je vais expliquer chaque propriété. ①: Spring Boot Admin Server démarre avec le port 8080 par défaut (car il n'est pas défini en particulier), assurez-vous donc que le port de démarrage n'est pas couvert. 2: informations de connexion au serveur d'administration Spring Boot. ③: Tous les points de terminaison sont sécurisés depuis Spring Boot 1.5.x. Puisqu'il est désactivé pour confirmation, il est décrit dans la section sécurité en production. Besoin d'être traité.

Après cela, il est préférable d'ajouter build-info à pom.xml afin que les informations au moment de la construction (version, artefact, etc.) soient affichées.

pom.xml


	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>build-info</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

Tout ce que vous avez à faire est de le démarrer.

Impressions

L'écran ressemble à ceci.

スクリーンショット 2018-02-15 17.26.52.png

Démérite

Ce qui m'a immédiatement mis mal à l'aise, c'est que l'affichage n'était pas au fil du temps. En d'autres termes, seul l'état actuel de l'instantané est affiché. Par conséquent, on ne sait pas si l'état est un état dans lequel la charge est plus élevée que d'habitude. Je pense que c'est le plus gros inconvénient. Pour être honnête, c'est difficile à voir, et c'est difficile à utiliser car je ne peux pas dire si c'est normal ou non.

mérite

J'ai essayé de poursuivre un peu

Construction interne (client Spring Boot Admin)

Le processus principal est décrit dans le package de.codecentric.boot.admin.client.registration. Le côté client ne fait que planifier et s'inscrire du côté serveur.

classe Aperçu du traitement
RegistrationApplicationListener Inscrivez-vous et annulez la programmation. La méthode de la classe ApplicationRegistrator est appelée au démarrage ou périodiquement.
ApplicationRegistrator La communication HTTP est effectuée avec l'administrateur du serveur Spring Boot et l'enregistrement est demandé côté serveur.

Construction interne (Spring Boot Admin Server)

En gros, il y a un processus de réception de HTTP et d'enregistrement, et un processus de mise à jour régulière du statut. Cliquez ici pour les classes qui sont principalement liées au processus de réception et d'enregistrement HTTP.

paquet classe Aperçu du traitement
de.codecentric.boot.admin.registry.web RegistryController Contrôleur qui reçoit l'API du côté client.
de.codecentric.boot.admin.registry ApplicationRegistry Enregistrez les informations client en fonction des informations reçues du côté client.

Cliquez ici pour le processus de mise à jour régulière du statut.

paquet classe Aperçu du traitement
de.codecentric.boot.admin.registry StatusUpdateApplicationListener Inscrivez-vous et annulez la programmation.
de.codecentric.boot.admin.registry StatusUpdater Accédez à l'API Actuator côté client et mettez à jour le statut.

Conseils: afficher les informations de commit Git

Lorsque je l'ai créé par défaut, les informations de validation de Git (ID de validation, branche, etc.) n'étaient pas affichées, j'ai donc vérifié les paramètres.

Spring Boot Admin affiche les informations de / info de Spring Boot Actuator, vous pouvez donc ajouter les informations de Git à / info. La méthode est la suivante.

Ajoutez git-commit-id-plugin à pom.xml.

pom.xml


<build>
    <plugins>
        <plugin>
            <groupId>pl.project13.maven</groupId>
            <artifactId>git-commit-id-plugin</artifactId>
        </plugin>
    </plugins>
</build>

C'est tout ce dont vous avez besoin! Le git-commit-id-plugin crée uniquement un fichier git.properties, mais la classe GitInfoContributor de Spring Boot Actuator trouve automatiquement le fichier et l'ajoute à / info.

Résumé

Après tout, il est dommage que le temps ne soit pas passé. Je me suis demandé si je prendrais la peine de l'adopter pour le projet. J'espère qu'il sera amélioré afin qu'il soit plus facile à utiliser à l'avenir.

De plus, si vous regardez le contenu de la bibliothèque, ce sera une expérience d'apprentissage. Parfois, je veux prendre le temps de vérifier la bibliothèque comme ça.

GitHub

Je l'ai téléchargé sur mon GitHub, veuillez donc vous y référer. spring-boot-admin-sample

référence

Spring Boot Admin

Afficher les informations de commit Git

Recommended Posts

Construction et impression de Spring Boot Admin ~ Conseils pour afficher les informations de commit Git ~
Mémorandum WebMvcConfigurer de Spring Boot 2.0 (printemps 5)
Divers tableau de correspondance de Spring Framework et Spring Boot
Plans pour prendre en charge JDK 11 pour Eclipse et Spring Boot
[Pour les débutants] DI ~ Les bases de DI et DI au printemps ~
Obtenez des informations d'erreur à l'aide de DefaultErrorAttributes et ErrorAttributeOptions dans Spring Boot 2.3
Une introduction pratique pour les débutants de Spring 5 et Spring Boot 2 a été publiée