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.6.2.jar"
di suatu tempat sebelum -jar
, misalnya:
java -javaagent:"path/to/applicationinsights-agent-3.6.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></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.properties
application.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></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.