將 Azure Monitor Application Insights 與 Spring Boot 搭配使用
注意
透過 Spring Boot 原生映像應用程式,您可以使用此專案。
使用 Spring Boot 啟用 Application Insights Java 有兩個選項:JAVA 虛擬機器 (JVM) 引數和以程式設計方式。
使用 JVM 引數啟用
在 -jar
前面新增 JVM 引數 -javaagent:"path/to/applicationinsights-agent-3.6.2.jar"
,例如:
java -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" -jar <myapp.jar>
透過 Docker 進入點的 Spring Boot
請參閱與容器相關的文件。
組態
請參閱設定選項。
以程式設計方式啟用
若要以程式設計方式啟用 Application Insights Java,您必須新增下列相依性:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version></version>
</dependency>
並在 main()
方法的開頭叫用 com.microsoft.applicationinsights.attach.ApplicationInsights
類別的 attach()
方法。
警告
必須在 main
方法的開頭要求叫用。
警告
不支援 JRE。
警告
作業系統的臨時目錄應該可寫入。
範例:
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
ApplicationInsights.attach();
SpringApplication.run(SpringBootApp.class, args);
}
}
組態
以程式設計方式啟用支援與 JVM 引數啟用相同的設定選項,以及下一節中所述的差異。
設定檔位置
根據預設,以程式設計方式啟用 Application Insights Java 時,設定檔 applicationinsights.json
會從 classpath (src/main/resources
,src/test/resources
) 讀取。
從 3.4.3,您可以使用 applicationinsights.runtime-attach.configuration.classpath.file
系統屬性,在 classpath 中設定 JSON 檔案名稱。
例如,有了 -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json
,Application Insights 會使用 applicationinsights-dev.json
檔案進行設定。 若要以程式設計方式在 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);
}
注意
Spring 的 application.properties
或 application.yaml
檔案不支援做為 Application Insights Java 設定的來源。
請參閱設定檔路徑設定選項,以變更 classpath 外部檔案的位置。
若要以程式設計方式在 classpath 外部設定檔案:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
以程式設計方式設定連接字串
首先,新增 applicationinsights-core
相依性:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version></version>
</dependency>
然後,在 ApplicationInsights.attach()
之後呼叫 ConnectionString.configure
方法:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
或者,從 Spring 元件呼叫 ConnectionString.configure
方法。
啟用在執行階段設定的連接字串:
{
"connectionStringConfiguredAtRuntime": true
}
自我診斷記錄檔位置
根據預設,以程式設計方式啟用 Application Insights Java 時,包含代理程式記錄的 applicationinsights.log
檔案會位於已啟動 JVM 的目錄中 (使用者目錄)。
請參閱 自我診斷設定選項,以了解如何變更此位置。