使用 Azure Monitor Application Insights 搭配 Spring Boot
注意
透過 Spring Boot 原生映射應用程式,您可以使用 此專案。
使用 Spring Boot 啟用 Application Insights Java 有兩個選項:Java 虛擬機 (JVM) 自變數,並以程式設計方式啟用 Application Insights Java。
使用 JVM 自變數啟用
將 JVM 自變數 -javaagent:"path/to/applicationinsights-agent-3.5.2.jar"
新增至之前的 -jar
某處,例如:
java -javaagent:"path/to/applicationinsights-agent-3.5.2.jar" -jar <myapp.jar>
透過 Docker 進入點的 Spring Boot
請參閱與 容器相關的檔。
組態
請參閱組 態選項。
以程式設計方式啟用
若要以程序設計方式啟用 Application Insights Java,您必須新增下列相依性:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version>3.5.2</version>
</dependency>
並叫attach()
用 方法開頭行中 類別的 main()
方法com.microsoft.applicationinsights.attach.ApplicationInsights
。
警告
叫用必須位於 方法的 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,您可以使用系統屬性,在 classpath applicationinsights.runtime-attach.configuration.classpath.file
中設定 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>3.5.2</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 的目錄中(使用者目錄)。
若要瞭解如何變更此位置,請參閱您的 自我診斷組態選項。