La fonction principale de Spring Boot est AutoConfig (configuration automatique), et pour les utilisateurs américains, ce ne sont que divers démarreurs.
Spring Boot-Actuator fournit également un démarreur, qui est automatiquement configuré pour nous. En termes d'utilisation, nous n'avons qu'à ajouter un démarreur à nos dépendances, puis à démarrer le projet.
<dependency> <proupId> org.springframework.boot </rombasid> <ArtefactId> printemp-boot-starter-actuator </retifactid> </pedidency>
Point de terminaison couramment utilisé
Spring Boot-Actuator fournit de nombreux points de terminaison utiles et fournit diverses applications de démarrage Spring. Parlons de mes points de terminaison couramment utilisés:
/ Application de santé Statut de santé
/ ConfigProps obtient les informations de configuration de l'application, car Spring Boot peut être un package JAR distinct lors de sa publication, et le fichier de configuration peut être inclus. Lorsque nous devons vérifier le fichier de configuration, nous pouvons utiliser ConfigProPsendPoint pour voir si certaines configurations sont correctes.
/ Tracez les dernières informations de demande HTTP
Point de santé
Lorsque nous visitons http: // localhost: 8088 / Health, nous pouvons voir que HealthEndpoint nous fournit des résultats de surveillance par défaut, y compris la détection du disque et la détection de la base de données.
{"Status": "Up", "Diskspace": {"Status": "Up", "Total": 398458875904, "Free": 315106918400, "STATHOLD": 10485760}, "DB": {"Status": "Up", "Database": "MysQL", "Hello": 1} En fait, en examinant le code source de Spring Boot-Actorator, vous constaterez que les informations fournies par HealthEndpoint ne sont pas limitées à cela. Dans le cadre du package org.springframework.boot.actuate.health, vous trouverez ElasticsearchHealthindicator, RedishEalthIndicator, RabbithealthIndicator, etc.
C'est-à-dire que HealthEndPoint fournit également des informations sur la santé pour des composants tels que ES, Redis.
Indicateur personnalisé prolonge la santé
En regardant le code source, les informations sur la santé du disque et de la base de données sont implémentées par DiskSpaceHealthIndicator et DataSourceHealthIndicator. Lorsque nous surveillons certains de nos composants personnalisés, nous pouvons également implémenter un indicateur:
@ComponentPublic Class utilisateur implémente HealthIndicator {/ ** * Utilisateur Surveillance Accès: http: // localhost: 8088 / Health * * @return Custom Health Monitle "up"). up (). build (); }}À l'heure actuelle, nous visitons à nouveau: http: // localhost: 8088 / santé Le résultat renvoyé pour le moment est le suivant, y compris nos informations sur la santé des utilisateurs personnalisées.
{"Status": "Up", "User": {"Status": "Up", "UserCount": 10, "UsersTatus": "Up"}, "DiskSpace": {"Status": "Up", "Total": 398458875904, "GRATUIT": 315097989120, "THRESHORD": 10485760}, "DB": othold ": 10485760}," DB ": othas "statut": "up", "base de données": "mysql", "bonjour": 1}}Point de terminaison personnalisé
En fait, en plus d'étendre HealthEndPoint pour ajouter des contrôles de santé, nous pouvons également personnaliser certains points de terminaison pour fournir un affichage d'informations pendant l'exécution du programme:
@ConfigurationPublic class endpointAutAutoConfig {@Bean public endpoint <map <string, objet >> personnalisédpoint () {return new SystendPoint (); }} @ ConfigurationProperties (prefix = "endpoint.customSystem") La classe publique SystemEndPoint étend AbstractendPoint <map <string, objet >> {public SEstemEndPoint () {super ("CustomSystem"); } @Override public map <string, object> invoke () {map <string, object> result = new hashmap <> (); Map <string, string> map = system.getenv (); result.put ("nom d'utilisateur", map.get ("nom d'utilisateur")); result.put ("ComputerName", map.get ("ComputerName")); result.put ("userdomain", map.get ("userdomain")); Résultat de retour; }}Visitez http: // localhost: 8088 / CustomSystem pour afficher notre point de terminaison personnalisé, et le résultat est le suivant:
?
Après avoir ajouté un actionneur à notre application Spring Boot, l'interface de santé attendue renvoie le résultat devrait être quelque chose comme celui qui suit:
{Status: "Up", Diskspace: {Status: "Up", Total: 250182889472, gratuit: 31169568768, seuil: 10485760}, db: {status: "up", base de données: "H2", bonjour: 1}}}}Si c'est juste un statut retourné
{Status: "UP"}Vous devez ajouter une nouvelle configuration pour l'application. Prenant l'exemple du fichier de configuration YML, vous devez ajouter la configuration suivante:
Gestion: Sécurité: Activé: FalseDendpoints: Santé: Sensitive: False
gestion.endpoint.health.show-details = toujours
Résumer
Ce qui précède est la vérification et la surveillance de la santé du projet de mise en œuvre de Springboot introduites par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!