附註
透過 Spring Boot 原生映像應用程式,您可以使用此專案。
使用 Spring Boot 啟用 Application Insights Java 有兩個選項:JAVA 虛擬機器 (JVM) 引數和以程式設計方式。
使用 JVM 引數啟用
在 -javaagent:"path/to/applicationinsights-agent-3.7.5.jar" 前面新增 JVM 引數 -jar,例如:
java -javaagent:"path/to/applicationinsights-agent-3.7.5.jar" -jar <myapp.jar>
透過 Docker 進入點的 Spring Boot
請參閱與容器相關的文件。
組態
請參閱設定選項。
以程式設計方式啟用
若要以程式設計方式啟用 Application Insights Java,您必須新增下列相依性:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version>3.7.5</version>
</dependency>
並在 attach() 方法的開頭叫用 com.microsoft.applicationinsights.attach.ApplicationInsights 類別的 main() 方法。
警告
必須在 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>3.7.5</version>
</dependency>
然後,在 ConnectionString.configure 之後呼叫 ApplicationInsights.attach()方法:
public static void main(String[] args) {
ApplicationInsights.attach();
ConnectionString.configure("<Your Connection String>");
SpringApplication.run(PetClinicApplication.class, args);
}
或者,從 Spring 元件呼叫 ConnectionString.configure 方法。
啟用在執行階段設定的連接字串:
{
"connectionStringConfiguredAtRuntime": true
}
自我診斷記錄檔位置
根據預設,以程式設計方式啟用 Application Insights Java 時,包含代理程式記錄的 applicationinsights.log 檔案會位於已啟動 JVM 的目錄中 (使用者目錄)。
請參閱 自我診斷設定選項,以了解如何變更此位置。