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.2.jar"
in un punto precedente a -jar
, ad esempio:
java -javaagent:"path/to/applicationinsights-agent-3.6.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></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></version>
</dependency>
Chiamare quindi il metodo ConnectionString.configure
dopo ApplicationInsights.attach()
:
public static void main(String[] args) {
ApplicationInsights.attach();
ConnectionString.configure("<Your Connection String>");
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.