Uso di Application Insights di Monitoraggio di Azure con Spring Boot

Nota

Con le applicazioni di immagini native Spring Boot, è possibile usare questo progetto.

Sono disponibili due opzioni per abilitare Application Insights Java con Spring Boot: argomento JVM (Java Virtual Machine) e a livello di codice.

Abilitazione con l'argomento JVM

Aggiungere l'arg -javaagent:"path/to/applicationinsights-agent-3.5.2.jar" JVM in un punto precedente -jara , ad esempio:

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

Spring Boot tramite il punto di ingresso docker

Vedere la documentazione relativa ai contenitori.

Impostazione

Vedere le opzioni di configurazione.

Abilitazione a livello di codice

Per abilitare Application Insights Java a livello di codice, è necessario aggiungere la dipendenza seguente:

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

Richiamare il attach() metodo della com.microsoft.applicationinsights.attach.ApplicationInsights classe che si trova nella riga iniziale del main() metodo.

Avviso

La chiamata deve essere all'inizio del main metodo .

Avviso

JRE non è supportato.

Avviso

La directory temporanea del sistema operativo deve essere scrivibile.

Esempio:

@SpringBootApplication
public class SpringBootApp {

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

Impostazione

L'abilitazione a livello di codice supporta tutte le stesse opzioni di configurazione dell'abilitazione dell'argomento JVM, con le differenze descritte nelle sezioni successive.

Percorso del file di configurazione

Per impostazione predefinita, quando si abilita Application Insights Java a livello di codice, il file applicationinsights.json di configurazione viene letto dal classpath (src/main/resources, src/test/resources).

Dalla versione 3.4.3 è possibile configurare il nome di un file JSON nel classpath con la applicationinsights.runtime-attach.configuration.classpath.file proprietà di sistema. Ad esempio, con -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json, Application Insights usa il file per la applicationinsights-dev.json configurazione. Per configurare a livello di codice un altro file nel classpath:

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

Nota

I file o application.yaml spring non sono supportati come origini per la configurazione Java di application.properties Application Insights.

Per modificare il percorso di un file all'esterno del classpath, vedere Opzioni di configurazione del percorso del file di configurazione.

Per configurare un file a livello di codice all'esterno del classpath:

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

Configurare l'stringa di connessione a livello di codice

Aggiungere prima di tutto la applicationinsights-core dipendenza:

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

Chiamare quindi il ConnectionString.configure metodo dopo ApplicationInsights.attach():

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

In alternativa, chiamare il ConnectionString.configure metodo da un componente Spring.

Abilitare stringa di connessione configurata in fase di esecuzione:

{
  "connectionStringConfiguredAtRuntime": true
}

Percorso del file di log di diagnostica automatica

Per impostazione predefinita, quando si abilita Application Insights Java a livello di codice, il applicationinsights.log file contenente i log dell'agente si trova nella directory da cui viene avviata la JVM (directory utente).

Per informazioni su come modificare questo percorso, vedere le opzioni di configurazione self-diagnostic.