Menggunakan Azure Monitor Application Insights dengan Spring Boot

Catatan

Dengan aplikasi gambar asli Spring Boot, Anda dapat menggunakan proyek ini.

Ada dua opsi untuk mengaktifkan Application Insights Java dengan Spring Boot: argumen Java Virtual Machine (JVM) dan secara terprogram.

Mengaktifkan dengan argumen JVM

Tambahkan JVM arg -javaagent:"path/to/applicationinsights-agent-3.5.2.jar" di suatu tempat sebelum -jar, misalnya:

java -javaagent:"path/to/applicationinsights-agent-3.5.2.jar" -jar <myapp.jar>

Spring Boot melalui titik masuk Docker

Lihat dokumentasi yang terkait dengan kontainer.

Konfigurasi

Lihat opsi konfigurasi.

Mengaktifkan secara terprogram

Untuk mengaktifkan Application Insights Java secara terprogram, Anda harus menambahkan dependensi berikut:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-runtime-attach</artifactId>
    <version>3.5.2</version>
</dependency>

Dan panggil attach() metode com.microsoft.applicationinsights.attach.ApplicationInsights kelas yang ada di baris awal metode Anda main() .

Peringatan

Pemanggilan harus berada di awal main metode.

Peringatan

JRE tidak didukung.

Peringatan

Direktori sementara sistem operasi harus dapat ditulis.

Contoh:

@SpringBootApplication
public class SpringBootApp {

  public static void main(String[] args) {
    ApplicationInsights.attach();
    SpringApplication.run(SpringBootApp.class, args);
  }
}

Konfigurasi

Pengaktifan terprogram mendukung semua opsi konfigurasi yang sama dengan pengaktifan argumen JVM, dengan perbedaan yang dijelaskan di bagian berikutnya.

Lokasi file konfigurasi

Secara default, saat mengaktifkan Application Insights Java secara terprogram, file applicationinsights.json konfigurasi dibaca dari classpath (src/main/resources, src/test/resources).

Dari 3.4.3, Anda dapat mengonfigurasi nama file JSON di classpath dengan applicationinsights.runtime-attach.configuration.classpath.file properti sistem. Misalnya, dengan -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json, Application Insights applicationinsights-dev.json menggunakan file untuk konfigurasi. Untuk mengonfigurasi file lain secara terprogram di 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);
}

Catatan

Spring atau application.propertiesapplication.yaml file tidak didukung sebagai sumber untuk konfigurasi Application Insights Java.

Lihat opsi konfigurasi jalur file konfigurasi untuk mengubah lokasi file di luar classpath.

Untuk mengonfigurasi file secara terprogram di luar classpath:

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

Mengonfigurasi string koneksi secara terprogram

Pertama, tambahkan applicationinsights-core dependensi:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-core</artifactId>
    <version>3.5.2</version>
</dependency>

Kemudian, panggil ConnectionString.configure metode setelah ApplicationInsights.attach():

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

Atau, panggil ConnectionString.configure metode dari komponen Spring.

Aktifkan string koneksi yang dikonfigurasi pada runtime:

{
  "connectionStringConfiguredAtRuntime": true
}

Lokasi file log diagnostik mandiri

Secara default, saat mengaktifkan Application Insights Java secara terprogram, applicationinsights.log file yang berisi log agen terletak di direktori tempat JVM diluncurkan (direktori pengguna).

Untuk mempelajari cara mengubah lokasi ini, lihat opsi konfigurasi diagnostik mandiri Anda.