Dela via


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

Se konfigurationsalternativ.

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.jsonfilen 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.