Share via


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 -jartoe, 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.jsonhet 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.