Utilisation d’Azure Monitor Application Insights avec Spring Boot
Remarque
Avec applications d’image native Spring Boot, vous pouvez utiliser ce projet.
Il existe deux options pour activer Application Insights Java avec Spring Boot : l’argument JVM (Java Virtual Machine) et programmatiquement.
Activation avec l’argument JVM
Ajoutez l’argument JVM -javaagent:"path/to/applicationinsights-agent-3.6.2.jar"
à l'emplacement de votre choix avant -jar
, par exemple :
java -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" -jar <myapp.jar>
Spring Boot via le point d’entrée Docker
Consultez la documentation relative aux conteneurs..
Configuration
Consultez les options de configuration.
Activation programmatique
Pour activer Application Insights Java programmatiquement, vous devez ajouter la dépendance suivante :
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version></version>
</dependency>
Appelez ensuite la méthode attach()
de la classe com.microsoft.applicationinsights.attach.ApplicationInsights
dans la ligne de début de votre méthode main()
.
Avertissement
L’appel doit avoir lieu au début de la méthode main
.
Avertissement
JRE n’est pas pris en charge.
Avertissement
Le répertoire temporaire du système d’exploitation doit être accessible en écriture.
Exemple :
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
ApplicationInsights.attach();
SpringApplication.run(SpringBootApp.class, args);
}
}
Configuration
L’activation programmatique prend en charge toutes les mêmes options de configuration que l’activation par l’argument JVM, avec les différences décrites dans les sections suivantes.
Emplacement du fichier de configuration
Par défaut, lors de l’activation programmatique d’Application Insights Java, le fichier de configuration applicationinsights.json
est lu à partir du chemin de la classe (src/main/resources
, src/test/resources
).
À partir de la version 3.4.3, vous pouvez configurer le nom d’un fichier JSON dans le chemin de la classe avec la propriété système applicationinsights.runtime-attach.configuration.classpath.file
.
Par exemple, avec -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json
, Application Insights utilise le fichier applicationinsights-dev.json
pour la configuration. Pour configurer par programme un autre fichier dans le classpath :
public static void main(String[] args) {
System.setProperty("applicationinsights.runtime-attach.configuration.classpath.file", "applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Remarque
Les fichiers application.properties
ou application.yaml
de Spring ne sont pas pris en charge comme sources pour la configuration Application Insights Java.
Consultez les options de configuration du chemin du fichier de configuration pour changer l’emplacement d’un fichier en dehors du chemin de la classe.
Pour configurer par programme un fichier en dehors du classpath :
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Configurer par programmation la chaîne de connexion
Tout d’abord, ajoutez la dépendance applicationinsights-core
:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version></version>
</dependency>
Ensuite, appelez la méthode ConnectionString.configure
après ApplicationInsights.attach()
:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Vous pouvez également appeler la méthode ConnectionString.configure
à partir d’un composant Spring.
Activez la chaîne de connexion configurée au moment de l’exécution :
{
"connectionStringConfiguredAtRuntime": true
}
Emplacement du fichier journal de l’auto-diagnostic
Par défaut, lors de l’activation programmatique d’Application Insights Java, le fichier applicationinsights.log
contenant les journaux de l’agent se trouve dans le répertoire à partir duquel la machine JVM est lancée (répertoire utilisateur).
Pour apprendre comment changer cet emplacement, consultez les options de configuration de l’auto-diagnostic.