Freigeben über


Verwenden Azure Monitor Application Insights mit Spring Boot

Hinweis

Mit nativen Spring Boot-Image-Anwendungen können Sie dieses Projekt verwenden.

Es gibt zwei Optionen zum Aktivieren von Application Insights Java mit Spring Boot: Java Virtual Machine (JVM)-Argument und programmgesteuert.

Aktivieren mit JVM-Argument

Fügen Sie das JVM-Argument -javaagent:"path/to/applicationinsights-agent-3.7.8.jar" an beliebiger Stelle vor -jar hinzu. Beispiel:

java -javaagent:"path/to/applicationinsights-agent-3.7.8.jar" -jar <myapp.jar>

Spring Boot über Docker-Einstiegspunkt

Siehe Dokumentation zu Containern.

Konfiguration

Siehe Konfigurationoptionen.

Programmgesteuerte Aktivierung

Um Application Insights Java programmgesteuert zu aktivieren, müssen Sie die folgende Abhängigkeit hinzufügen:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-runtime-attach</artifactId>
    <version>3.7.8</version>
</dependency>

Rufen Sie die attach()-Methode der com.microsoft.applicationinsights.attach.ApplicationInsights-Klasse auf, die sich in der Anfangszeile Ihrer main()-Methode befindet.

Warnung

Der Aufruf muss am Anfang der main-Methode sein.

Warnung

JRE wird nicht unterstützt.

Warnung

Das temporäre Verzeichnis des Betriebssystems sollte beschreibbar sein.

Beispiel:

@SpringBootApplication
public class SpringBootApp {

  public static void main(String[] args) {
    ApplicationInsights.attach();
    SpringApplication.run(SpringBootApp.class, args);
  }
}

Konfiguration

Die programmgesteuerte Aktivierung unterstützt alle gleichen Konfigurationsoptionen wie die Aktivierung des JVM-Arguments, mit den Unterschieden, die in den nächsten Abschnitten beschrieben werden.

Speicherort der Konfigurationsdatei

Standardmäßig wird beim programmgesteuerten Aktivieren von Application Java Insights die Konfigurationsdatei applicationinsights.json aus dem Klassenpfad gelesen (src/main/resources, src/test/resources).

Ab 3.4.3 können Sie den Namen einer JSON-Datei im Klassenpfad mit der Systemeigenschaft applicationinsights.runtime-attach.configuration.classpath.file konfigurieren. Bei -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json verwendet Application Insights beispielsweise die Datei applicationinsights-dev.json für die Konfiguration. So konfigurieren Sie eine andere Datei programmgesteuert im Klassenpfad:

public static void main(String[] args) {
    System.setProperty("applicationinsights.runtime-attach.configuration.classpath.file", "applicationinsights-dev.json");
    ApplicationInsights.attach();
    SpringApplication.run(PetClinicApplication.class, args);
}

Hinweis

Springs application.properties- oder application.yaml-Dateien werden nicht als Quellen für application Insights Java Konfiguration unterstützt.

Informationen zum Ändern des Ablageorts für eine Datei außerhalb des Klassenpfads finden Sie unter Konfigurationsoptionen für den Pfad der Konfigurationsdatei.

So konfigurieren Sie eine Datei außerhalb des Klassenpfads programmgesteuert:

public static void main(String[] args) {
    System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
    ApplicationInsights.attach();
    SpringApplication.run(PetClinicApplication.class, args);
}

Programmgesteuertes Konfigurieren der Verbindungszeichenfolge

Fügen Sie zunächst die applicationinsights-core-Abhängigkeit hinzu:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-core</artifactId>
    <version>3.7.8</version>
</dependency>

Rufen Sie anschließend die ConnectionString.configure-Methode nach ApplicationInsights.attach() auf:

public static void main(String[] args) {
    ApplicationInsights.attach();
    ConnectionString.configure("<Your Connection String>");
    SpringApplication.run(PetClinicApplication.class, args);
}

Alternativ können Sie die ConnectionString.configure-Methode aus einer Spring-Komponente aufrufen.

Aktivieren Sie eine Verbindungszeichenfolge, die zur Laufzeit konfiguriert wird.

{
  "connectionStringConfiguredAtRuntime": true
}

Speicherort der Protokolldatei zur Selbstdiagnose

Wenn Application Insights Java programmgesteuert aktiviert wird, befinden sich die datei applicationinsights.log, die die Agentprotokolle enthält, im Verzeichnis, aus dem das JVM gestartet wird (Benutzerverzeichnis).

Weitere Informationen zum Ändern dieses Speicherorts finden Sie in Ihren Konfigurationsoptionen zur Selbstdiagnose.