Azure Monitor Application Insights と Spring Boot の使用

Note

"Spring Boot ネイティブ イメージ アプリケーション" では、このプロジェクトを使用できます。

Spring Boot で Application Insights Java を有効にするには、Java Virtual Machine (JVM) 引数を使用する方法と、プログラムによる方法の 2 つのオプションがあります。

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>

また、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 がクラスパス (src/main/resourcessrc/test/resources) から読み取られます。

3.4.3 以降では、applicationinsights.runtime-attach.configuration.classpath.file システム プロパティを使用して、クラスパス内の JSON ファイルの名前を構成できます。 たとえば、-Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json と指定すると、Application Insights で構成に applicationinsights-dev.json ファイルが使用されます。 クラスパス内の別のファイルをプログラムで構成するには:

public static void main(String[] args) {
    System.setProperty("applicationinsights.runtime-attach.configuration.classpath.file", "applicationinsights-dev.json");
    ApplicationInsights.attach();
    SpringApplication.run(PetClinicApplication.class, args);
}

Note

Spring の application.properties ファイルまたは application.yaml ファイルは、Application Insights Java 構成のソースとしてサポートされていません。

クラスパス外のファイルの場所を変更するには、構成ファイル パスの構成オプションを参照してください。

クラスパスの外部にあるファイルをプログラムで構成するには:

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 が起動されたディレクトリ (ユーザー ディレクトリ) に配置されます。

この場所を変更する方法については、自己診断構成オプションを参照してください。