Azure Monitor Application Insights gebruiken met Spring Boot
Notitie
Met systeemeigen Spring Boot-installatiekopietoepassingen kunt u dit project gebruiken.
Er zijn twee opties voor het inschakelen van Application Insights Java met Spring Boot: JVM-argument (Java Virtual Machine) en programmatisch.
Inschakelen met JVM-argument
Voeg de JVM-arg -javaagent:"path/to/applicationinsights-agent-3.6.0.jar"
ergens eerder -jar
toe, bijvoorbeeld:
java -javaagent:"path/to/applicationinsights-agent-3.6.0.jar" -jar <myapp.jar>
Spring Boot via Docker-toegangspunt
Raadpleeg de documentatie met betrekking tot containers.
Configuratie
Zie configuratieopties.
Programmatisch inschakelen
Als u Application Insights Java programmatisch wilt inschakelen, moet u de volgende afhankelijkheid toevoegen:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version>3.6.0</version>
</dependency>
En roep de attach()
methode aan van de com.microsoft.applicationinsights.attach.ApplicationInsights
klasse die zich in de beginregel van uw main()
methode bevindt.
Waarschuwing
De aanroep moet aan het begin van de main
methode staan.
Waarschuwing
JRE wordt niet ondersteund.
Waarschuwing
De tijdelijke map van het besturingssysteem moet beschrijfbaar zijn.
Voorbeeld:
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
ApplicationInsights.attach();
SpringApplication.run(SpringBootApp.class, args);
}
}
Configuratie
Programmatisch inschakelen ondersteunt dezelfde configuratieopties als de activering van het JVM-argument, met de verschillen die worden beschreven in de volgende secties.
Locatie van configuratiebestand
Wanneer u Application Insights Java programmatisch inschakelt, wordt het configuratiebestand applicationinsights.json
standaard gelezen uit het klassepad (src/main/resources
, src/test/resources
).
Vanaf 3.4.3 kunt u de naam van een JSON-bestand in het klassepad configureren met de applicationinsights.runtime-attach.configuration.classpath.file
systeemeigenschap.
Met Application Insights wordt bijvoorbeeld -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json
het applicationinsights-dev.json
bestand gebruikt voor configuratie. Programmatisch een ander bestand configureren in het klassepad:
public static void main(String[] args) {
System.setProperty("applicationinsights.runtime-attach.configuration.classpath.file", "applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Notitie
Spring's application.properties
of application.yaml
bestanden worden niet ondersteund als bronnen voor Application Insights Java-configuratie.
Zie de configuratieopties voor het configuratiebestandspad om de locatie voor een bestand buiten het klassepad te wijzigen.
Een bestand buiten het klassepad programmatisch configureren:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
De verbindingsreeks programmatisch configureren
Voeg eerst de applicationinsights-core
afhankelijkheid toe:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version>3.6.0</version>
</dependency>
Roep vervolgens de ConnectionString.configure
methode aan na ApplicationInsights.attach()
:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
U kunt ook de ConnectionString.configure
methode aanroepen vanuit een Spring-onderdeel.
Schakel verbindingsreeks geconfigureerd tijdens runtime in:
{
"connectionStringConfiguredAtRuntime": true
}
Locatie van zelfdiagnoselogboekbestand
Wanneer u Application Insights Java programmatisch inschakelt, bevindt het applicationinsights.log
bestand met de agentlogboeken zich standaard in de map van waaruit de JVM wordt gestart (gebruikersmap).
Zie de configuratieopties voor zelfdiagnose voor meer informatie over het wijzigen van deze locatie.