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 -jar
a , 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.