Použití služby Azure Monitor Application Insights se spring bootem
Poznámka:
S aplikacemi nativní bitové kopie Spring Boot můžete tento projekt použít.
Existují dvě možnosti, jak povolit Application Insights v Javě pomocí Spring Bootu: argument Java Virtual Machine (JVM) a programově.
Povolení pomocí argumentu JVM
Přidejte ho -javaagent:"path/to/applicationinsights-agent-3.6.2.jar"
někam předtím -jar
, například:
java -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" -jar <myapp.jar>
Spring Boot přes vstupní bod Dockeru
Viz dokumentace související s kontejnery.
Konfigurace
Viz možnosti konfigurace.
Povolení prostřednictvím kódu programu
Pokud chcete Povolit Application Insights v Javě programově, musíte přidat následující závislost:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version></version>
</dependency>
A vyvolat attach()
metodu com.microsoft.applicationinsights.attach.ApplicationInsights
třídy, která je na začátku řádku vaší main()
metody.
Upozorňující
Vyvolání musí být na začátku main
metody.
Upozorňující
JRE se nepodporuje.
Upozorňující
Dočasný adresář operačního systému by měl být zapisovatelný.
Příklad:
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
ApplicationInsights.attach();
SpringApplication.run(SpringBootApp.class, args);
}
}
Konfigurace
Programové povolení podporuje všechny stejné možnosti konfigurace jako povolení argumentu JVM s rozdíly, které jsou popsány v dalších částech.
Umístění konfiguračního souboru
Ve výchozím nastavení se při programovém povolení Application Insights v Javě načte konfigurační soubor applicationinsights.json
z cesty ke třídě (src/main/resources
, src/test/resources
).
Z verze 3.4.3 můžete nakonfigurovat název souboru JSON v cestě ke třídě pomocí applicationinsights.runtime-attach.configuration.classpath.file
systémové vlastnosti.
Například s -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json
, Application Insights používá applicationinsights-dev.json
soubor pro konfiguraci. Postup programové konfigurace jiného souboru v cestě k třídě:
public static void main(String[] args) {
System.setProperty("applicationinsights.runtime-attach.configuration.classpath.file", "applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Poznámka:
application.properties
Spring nebo application.yaml
soubory nejsou podporované jako zdroje pro konfiguraci Application Insights v Javě.
Viz možnosti konfigurace cesty ke konfiguračnímu souboru a změňte umístění souboru mimo cestu ke třídě.
Pokud chcete programově nakonfigurovat soubor mimo cestu ke třídě:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Konfigurace připojovací řetězec prostřednictvím kódu programu
Nejprve přidejte applicationinsights-core
závislost:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version></version>
</dependency>
Potom volejte metodu ConnectionString.configure
za ApplicationInsights.attach()
:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Alternativně volejte metodu ConnectionString.configure
z komponenty Spring.
Povolte připojovací řetězec nakonfigurované za běhu:
{
"connectionStringConfiguredAtRuntime": true
}
Umístění souboru protokolu samoobslužné diagnostiky
Ve výchozím nastavení se při programovém povolení Application Insights Java soubor obsahující protokoly agenta nachází v adresáři, applicationinsights.log
ze kterého se spustí JVM (uživatelský adresář).
Informace o tom, jak toto umístění změnit, najdete v možnostech konfigurace samoobslužné diagnostiky.