Använda Azure Monitor Application Insights med Spring Boot
Kommentar
Med inbyggda Spring Boot-avbildningsprogram kan du använda det här projektet.
Det finns två alternativ för att aktivera Application Insights Java med Spring Boot: JVM-argument (Java Virtual Machine) och programmatiskt.
Aktivera med JVM-argument
Lägg till JVM arg -javaagent:"path/to/applicationinsights-agent-3.6.2.jar"
någonstans före -jar
, till exempel:
java -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" -jar <myapp.jar>
Spring Boot via Docker-startpunkt
Se dokumentationen om containrar.
Konfiguration
Aktivera programmatiskt
Om du vill aktivera Application Insights Java programmatiskt måste du lägga till följande beroende:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version></version>
</dependency>
Och anropa metoden för attach()
klassen com.microsoft.applicationinsights.attach.ApplicationInsights
som finns i början av din main()
metod.
Varning
Anropet måste vara i början av main
metoden.
Varning
JRE stöds inte.
Varning
Den tillfälliga katalogen för operativsystemet ska vara skrivbar.
Exempel:
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
ApplicationInsights.attach();
SpringApplication.run(SpringBootApp.class, args);
}
}
Konfiguration
Programmatisk aktivering stöder samma konfigurationsalternativ som JVM-argumentaktivering, med de skillnader som beskrivs i nästa avsnitt.
Plats för konfigurationsfil
När du aktiverar Application Insights Java programmatiskt läss konfigurationsfilen applicationinsights.json
som standard från classpath (src/main/resources
, src/test/resources
).
Från 3.4.3 kan du konfigurera namnet på en JSON-fil i klassökvägen med systemegenskapen applicationinsights.runtime-attach.configuration.classpath.file
.
Med använder applicationinsights-dev.json
Application Insights till exempel -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json
filen för konfiguration. Så här konfigurerar du programmatiskt en annan fil i klassökvägen:
public static void main(String[] args) {
System.setProperty("applicationinsights.runtime-attach.configuration.classpath.file", "applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Kommentar
Spring-filer application.properties
eller application.yaml
-filer stöds inte som källor för Application Insights Java-konfiguration.
Se konfigurationsalternativ för konfiguration av filsökväg för att ändra platsen för en fil utanför klassökvägen.
Så här konfigurerar du programmatiskt en fil utanför klassökvägen:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Konfigurera anslutningssträng programmatiskt
Lägg först till beroendet applicationinsights-core
:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version></version>
</dependency>
Anropa ConnectionString.configure
sedan metoden efter ApplicationInsights.attach()
:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Alternativt kan du anropa ConnectionString.configure
metoden från en Spring-komponent.
Aktivera anslutningssträng som konfigurerats vid körning:
{
"connectionStringConfiguredAtRuntime": true
}
Plats för självdiagnostikloggfil
När du aktiverar Application Insights Java programmatiskt applicationinsights.log
finns filen som innehåller agentloggarna som standard i katalogen där JVM startas (användarkatalog).
Information om hur du ändrar den här platsen finns i konfigurationsalternativen för självdiagnostik.