Surveillance de Spring Boot

Vous pouvez surveiller les applications Spring Boot à l'aide du capteur Instana Spring Boot. Le capteur « Spring Boot » est automatiquement déployé et installé une fois que vous avez installé l'agent « Instana ». Une fois que vous avez configuré l' Spring Boot Actuator comme indiqué dans cette rubrique, vous pouvez consulter les métriques relatives aux applications Spring Boot dans l'interface utilisateur d' Instana.

Informations de support

Pour vous assurer que le capteur d' Spring Boot s est compatible avec votre configuration actuelle, consultez les sections d'informations d'assistance suivantes :

Systèmes d'exploitation pris en charge

Les systèmes d'exploitation pris en charge par le capteur « Spring Boot » correspondent aux exigences des agents hôtes, qui peuvent être consultées dans la section « Syst èmes d'exploitation pris en charge » de chaque agent hôte, par exemple à l'adresse Linux.

Versions prises en charge et politique d'assistance

Le tableau suivant présente la dernière version prise en charge et la politique d'assistance :

Technologie Politique de support Dernière version technologique Dernière version prise en charge
Spring Boot 45 jours 4.1.0 4.0.6

Pour plus d'informations sur la politique d'assistance, consultez la section « Stratégie d'assistance pour les capteurs ».

Configuration de la surveillance d' Spring Boot

Pour configurer la surveillance d' Spring Boot, procédez comme suit :

Étape 1 : Configurer l'actionneur d' Spring Boot

Pour configurer l'actionneur Spring Boot, ajoutez la dépendance suivante dans le pom.xml fichier :

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
 

L'Actuator d' Spring Boot génère et expose les points de terminaison opérationnels d'une application Spring Boot en cours d'exécution.

Étape 2 : Activer la fonctionnalité « Java Management Extensions » ( JMX )

Pour les versions d' Spring Boot2.2.x et ultérieures, activez l' JMX en définissant la propriété suivante dans le application.properties fichier :

spring.jmx.enabled=true
 

L'activation de l' JMX permet d'exposer les données et les ressources de votre application Spring Boot sous forme de beans gérés (MBeans).

Étape 3 : Exposer les MBeans de gestion d' Spring Boot

Si les points de terminaison sont désactivés dans le application.properties fichier avec les paramètres de configuration suivants, vous devez alors rendre accessibles les MBeans de gestion d' Spring Boot, car le capteur dépend de ces MBeans pour collecter les métriques de l'application Spring Boot :

management.endpoints.enabled-by-default=false
 

Pour exposer les MBeans, activez les points de terminaison suivants dans le application.properties fichier :

management.endpoint.info.enabled=true
management.endpoint.health.enabled=true
management.endpoint.metrics.enabled=true
management.endpoint.env.enabled=true
 

Instana interroge les métriques du MBean de gestion « Spring Bootorg.springframework.boot:type=Endpoint,name=Metrics ». Il n'est pas nécessaire de configurer l'authentification ni les identifiants pour les points de terminaison sécurisés des actionneurs.

Pour Spring Boot 3.x, assurez-vous que la directive suivante figure dans le application.properties fichier :

management.endpoints.jmx.exposure.include=env,health,info,metrics
 

Étape 4 : Exposer les points de terminaison via HTTP

Pour l' Spring Boot ion 2 et les versions ultérieures, l' Spring Boot Actuator assure la gestion des dépendances et la configuration automatique de l' Micrometer. Selon la version d' Spring Boot, différents indicateurs Micrometer sont disponibles sur le tableau de bord JVM.

Remarque : vous devez bien réfléchir avant de rendre les points de terminaison accessibles via HTTP, car ceux-ci peuvent contenir des informations sensibles. Par défaut, seul le noeud final de santé est exposé. Pour plus d'informations, consultez la section « Exposition des points de terminaison ».

Pour exclure certains points de terminaison de l' HTTP, utilisez la directive suivante :

management.endpoints.web.exposure.exclude=health,info
 

Pour exclure tous les points de terminaison d' HTTP, utilisez la directive suivante :

management.endpoints.web.exposure.exclude=*
 

Étape 5 : Afficher les valeurs d'environnement sous forme de texte

Avant que les propriétés de configuration de l'application puissent s'afficher dans l'interface utilisateur d' Instana, vous devez apporter d'autres modifications au application.properties fichier. Sinon, ces propriétés sont affichées sous la forme ****** en raison de valeurs sensibles. Pour plus d'informations, consultez la section « Sanitiser les valeurs sensibles ».

Pour toujours afficher les valeurs sous forme de texte en clair, utilisez la configuration suivante dans le fichier application.properties :

management.endpoint.env.show-values=ALWAYS
 

Étape 6 : Nommer les applications d' Spring Boot

Instana extrait le nom des instances de l' Spring Boot e à partir des sources suivantes :

  • spring.application.name propriété : si cette propriété est définie dans la configuration de votre application, sa valeur est utilisée comme nom de l'application. Sous Spring Boot e 3, pour spécifier le nom de l'application Spring Boot, définissez la spring.application.name propriété dans le application.properties fichier comme suit :

    spring.application.name=<Your_Application_Name>
     
  • build-info.properties fichier : si spring.application.name n'est pas défini, Instana récupère le nom de l'application Spring Boot à partir du build-info.properties fichier. Ce fichier peut être généré, par exemple, à l'aide de spring-boot-maven-plugin:

    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <executable>true</executable>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>build-info</goal>
          </goals>
          <configuration>
            <additionalProperties>
              <name>${project.artifactId}</name>
              <version>${project.version}</version>
            </additionalProperties>
          </configuration>
        </execution>
      </executions>
    </plugin>
     

    Pour plus d'informations sur l'intégration avec Actuator, consultez la documentation du plugin Spring BootMaven.

Facultatif : définir le paramètre « health-interval »

Par défaut, Instana vérifie l'état de l'application Spring Boot toutes les 10 minutes en interrogeant le MBean de gestion org.springframework.boot:type=Endpoint,name=Health.

Pour configurer le paramètre health-interval souhaité, définissez la valeur en secondes :

com.instana.plugin.springboot:
  health-interval: 30
 
Remarque : le test de santé peut entraîner de nouveaux appels en aval, selon la manière dont il est mis en œuvre. Si le diagnostic d'intégrité échoue, un message d'avertissement indiquant la cause première s'affiche.

Facultatif : configuration de la fréquence d'interrogation

Remarque : les capteurs Instana, Spring Boot, 1.1.49 et les versions ultérieures permettent de configurer la fréquence d'interrogation afin de réduire le volume de données collectées. Cette fonctionnalité est prise en charge sur le backend Instana auto-hébergé à partir de la version 311.

Vous pouvez configurer la fréquence à laquelle l' Instana interroge Spring Boot pour collecter des données et des métriques en utilisant le poll_rate paramètre dans le fichier de configuration.yaml l'agent, comme le montre l'exemple suivant :

com.instana.plugin.springboot:
  poll_rate: 1 # values are in seconds. Default value is 1 second.

Affichage des mesures

Pour afficher les métriques, procédez comme suit:

  1. Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
  2. Cliquez sur un hôte surveillé spécifique.

Vous pouvez voir un tableau de bord hôte avec toutes les métriques collectées et les processus surveillés.

Terminaux et sessions d' HTTP

Instana Spring Boot Le capteur recueille les métriques suivantes à partir des terminaux et des sessions d' HTTP :

Données de configuration

Le tableau suivant répertorie les données de configuration collectées par le capteur Instana Spring Boot :

Configuration Description
Nom Nom de l'application Spring Boot .
Version de l'application Version de génération de l'application Spring Boot .
Version de SpringBoot Version de l'infrastructure Spring Boot .
Statut Le statut de la demande d' Spring Boot, parUp exempleDown...
Port La version pour l' HTTP e de l'application Spring Boot.
Limite de session HTTP Nombre maximal de sessions d' HTTP s pour l'application Spring Boot.
Configuration de l'application Les informations de configuration de l'application Spring Boot , y compris le chemin de configuration et les propriétés.

Métriques de performance

Le tableau suivant répertorie les indicateurs de performance collectés par le capteur « Instana » Spring Boot :

Métrique Description Granularité
Répartition des demandes ou des réponses de noeud final Le nombre de requêtes par seconde pour chaque code d'état de réponse ( 1xx, 2xx, 3xx, 4xx ou 5xx ) 1 seconde
Sessions HTTP Nombre de sessions HTTP actives 1 seconde

Sources de données

Instana Spring Boot Le capteur recueille les données de surveillance suivantes à partir des sources de données :

Données de configuration

Le tableau suivant répertorie les données de configuration collectées à partir des sources de données :

Nom Description
Nom du pool Le nom de la piscine de HikariCP.
Dépassement du délai d'attente de connexion Le délai de connexion de HikariCP.

Métriques de performance

Les indicateurs de performance suivants sont collectés à partir des sources de données :

Java Source de données « JDBC » (Connexion à la base de données)

Le tableau suivant répertorie les indicateurs d' JDBC s collectés à partir des sources de données :

Métrique Afficher le nom Description Granularité
active Actif Le nombre de connexions actives. 1 seconde
idle En veille Le nombre de connexions inactives. 1 seconde
max Max Le nombre de connexions maximum. 1 seconde
min Min Le nombre de connexions minimum. 1 seconde
HikariCP source de données

Le tableau suivant répertorie les indicateurs d' HikariCP s collectés à partir des sources de données :

Métrique Afficher le nom Description Granularité
acquire Acquisitions Le nombre d'acquisitions de connexions. 1 seconde
active Actif Le nombre de connexions actives. 1 seconde
creation Créations Le nombre de créations de connexions. 1 seconde
idle En veille Le nombre de connexions inactives. 1 seconde
max Max Le nombre de connexions maximum. 1 seconde
min Min Le nombre de connexions minimum. 1 seconde
pending Unités d'exécution en attente Le nombre de threads en attente d'une connexion. 1 seconde
timeout Dépassements du délai d'attente Le nombre de délais d'attente de connexion. 1 seconde
total Total Le nombre total de connexions. 1 seconde
usage Utilisation Nombre de connexions rajoutées au pool. 1 seconde

Signatures d'intégrité

Pour chaque détecteur, une base de connaissances organisée des signatures de santé est évaluée en continu par rapport aux métriques entrantes et est utilisée pour signaler des problèmes ou des incidents qui dépendent de l'impact de l'utilisateur.

Les événements intégrés déclenchent des problèmes ou des incidents en fonction de signatures d'état de santé défaillantes sur des entités, tandis que les événements personnalisés déclenchent des problèmes ou des incidents en fonction des seuils d'une métrique spécifique de n'importe quelle entité sélectionnée.

Pour plus d'informations sur les événements générés pour le détecteur Spring Boot , voir la référence des événements intégrés.

Traitement des incidents

Utilisez ces entrées de traitement des incidents pour résoudre les problèmes liés à la surveillance des applications Spring Boot . Un message d'erreur indiquant le type de problème et une brève explication de ce qui s'est passé s'affiche sur le tableau de bord « Spring Boot » dans l'interface utilisateur d' Instana.

JMX n'est pas activé

Type de problème de surveillance : springboot_jmx_not_enabled

Pour activer l' JMX, consultez la section « Configuration de l' Spring Boot Actuator ».

Remarque : si la spring.main.lazy-initialization propriété est activée, vous devez mettre à jour la version d' Spring Boot vers la version 2.4.12 ou une version ultérieure.