Condividi tramite


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'argomento JVM -javaagent:"path/to/applicationinsights-agent-3.6.0.jar" in un punto precedente a -jar, ad esempio:

java -javaagent:"path/to/applicationinsights-agent-3.6.0.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.6.0</version>
</dependency>

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

Avviso

La chiamata deve essere all'inizio del metodo main.

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 di configurazione applicationinsights.json 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 proprietà di sistema applicationinsights.runtime-attach.configuration.classpath.file. Ad esempio, con -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json, Application Insights usa il file applicationinsights-dev.json per la 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 application.properties o application.yaml di Spring non sono supportati come origini per la configurazione Java di Application Insights.

Per modificare il percorso di un file all'esterno del classpath, vedere le 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 la stringa di connessione a livello di codice

Aggiungere prima di tutto la dipendenza applicationinsights-core:

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

Chiamare quindi il metodo ConnectionString.configure 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 metodo ConnectionString.configure da un componente Spring.

Abilitare la 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 file applicationinsights.log contenente i log dell'agente si trova nella directory da cui viene avviato l'argomento JVM (directory utente).

Per informazioni su come modificare questo percorso, vedere le opzioni di configurazione della diagnostica automatica.