Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Fitur Java Profiler sedang dalam pratinjau, mulai dari 3.4.0.
Java Profiler menyediakan sistem untuk:
- Membuat profil JDK Flight Recorder (JFR) sesuai permintaan dari Java Virtual Machine (JVM).
- Membuat profil JFR secara otomatis ketika kondisi pemicu tertentu terpenuhi dari JVM, seperti CPU atau memori yang melanggar ambang batas yang dikonfigurasi.
Gambaran Umum
Java Profiler menggunakan profiler JFR yang disediakan oleh JVM untuk merekam data pembuatan profil, memungkinkan pengguna mengunduh rekaman JFR di lain waktu dan menganalisisnya untuk mengidentifikasi penyebab masalah performa.
Data ini dikumpulkan sesuai permintaan saat kondisi pemicu terpenuhi. Pemicu yang tersedia adalah ambang batas atas penggunaan CPU, Konsumsi memori, dan Permintaan (pemicu perjanjian tingkat layanan). Pemicu permintaan memantau Rentang yang dihasilkan oleh OpenTelemetry dan memungkinkan pengguna untuk mengonfigurasi persyaratan perjanjian tingkat layanan (SLA) selama rentang tersebut.
Ketika ambang batas tercapai, profil dari jenis dan durasi yang dikonfigurasi dikumpulkan dan diunggah. Profil ini kemudian terlihat dalam panel performa UI Portal Application Insights terkait.
Peringatan
Profiler JFR secara default menjalankan profil "profile-without-env-data". File JFR adalah serangkaian peristiwa yang dipancarkan oleh JVM. Konfigurasi "profile-without-env-data", serupa dengan konfigurasi "profil" yang dikirimkan bersama JVM, namun membuat beberapa peristiwa menjadi nonaktif yang berpotensi berisi informasi penyebaran sensitif seperti variabel lingkungan, argumen yang diberikan ke JVM dan proses yang berjalan pada sistem.
Bendera yang tidak lagi tersedia adalah:
- jdk.JVMInformation
- jdk. InitialSystemProperty
- jdk.OsInformation
- jdk.InitialEnvironmentVariable
- jdk. SystemProcess
Namun, Anda harus meninjau semua bendera yang diaktifkan untuk memastikan bahwa profil tidak berisi data sensitif.
Lihat Mengonfigurasi Konten Profil tentang pengaturan konfigurasi profiler kustom.
Prasyarat
JVM dengan kemampuan Java Flight Recorder (JFR)
- Pembaruan Java 8 262+
- Java 11+
Peringatan
OpenJ9 JVM tidak didukung
Penggunaan
Pemicu
Untuk deskripsi lebih rinci tentang berbagai pemicu yang tersedia, lihat Aplikasi produksi profil di Azure dengan Application Insights Profiler untuk .NET.
Agen Java ApplicationInsights memantau durasi CPU, memori, dan permintaan seperti transaksi bisnis. Jika melanggar ambang batas yang dikonfigurasi, sebuah profil akan diaktifkan.
Profil Sekarang
Tombol Profil sekarang terletak di antarmuka pengguna profiler (lihat Mengonfigurasi Application Insights Profiler untuk .NET). Memilih tombol ini langsung meminta profil di semua agen yang terhubung ke instans Application Insights. Durasi pembuatan profil default adalah dua menit. Anda dapat mengubahnya dengan mengambil alih periodicRecordingDurationSeconds
(lihat File konfigurasi).
Peringatan
Menjalankan Profil sekarang akan mengaktifkan fitur profiler, dan Application Insights akan menerapkan pemicu CPU dan memori SLA default. Ketika aplikasi Anda melanggar SLA tersebut, Application Insights akan mengumpulkan profil Java. Jika Anda ingin menonaktifkan pembuatan profil nanti, Anda dapat melakukannya dalam menu pemicu yang ditampilkan di Penginstalan.
CPU (unit pemrosesan pusat)
Ambang CPU adalah persentase penggunaan semua inti yang tersedia pada sistem.
Sebagai contoh, jika satu inti dari delapan mesin inti bersifat jenuh, persentase CPU akan dianggap 12,5%.
Memori
Persentase memori adalah okupansi wilayah memori Rentang Panjang (OldGen) saat ini terhadap ukuran maksimum yang mungkin dari wilayah tersebut.
Hunian dievaluasi setelah pengumpulan yang sudah mapan dilakukan. Ukuran maksimum wilayah yang disewa adalah ukurannya jika timbunan Java Virtual Machine (JVM) tumbuh hingga ukuran maksimumnya.
Misalnya, ambil skenario berikut:
- Heap Java dapat membesar hingga maksimal 1.024 MB.
- Generasi Berpengalaman bisa tumbuh hingga 90% dari tumpukan.
- Ukuran maksimum yang mungkin dari tenured adalah 922 MB.
- Ambang batas Anda ditetapkan melalui antarmuka pengguna ke 75%, oleh karena itu ambang batas Anda akan menjadi 75% dari 922 mb, 691 mb.
Dalam skenario ini, profil berlaku dalam keadaan berikut:
- Pengumpulan sampah penuh dijalankan
- Okupansi wilayah yang telah ditetapkan lebih dari 691 mb setelah pengumpulan data
Permintaan
Pemicu SLA didasarkan pada OpenTelemetry, dan mengaktifkan profil ketika kriteria tertentu terpenuhi.
Setiap konfigurasi pemicu individu dibentuk sebagai berikut:
-
Name
- Pengidentifikasi unik untuk pemicu. -
Filter
- Memfilter permintaan yang relevan untuk pemicu. -
Aggregation
- Menghitung rasio permintaan yang melanggar ambang batas tertentu.-
Threshold
- Nilai minimum (dalam milidetik) di mana pelanggaran permintaan ditentukan untuk terjadi. -
Minimum samples
- Jumlah minimum sampel yang harus dikumpulkan agar agregasi menghasilkan data, pengaturan ini bertujuan untuk menghindari masalah dengan ukuran sampel kecil. -
Window
- Jendela waktu bergulir (dalam milidetik).
-
-
Threshold
- Nilai ambang batas (persentase) diterapkan ke output agregasi. Jika nilai ini terlampaui, profil akan dimulai.
Misalnya, skenario berikut akan memicu profil jika: lebih dari 75% permintaan ke titik akhir tertentu (/users/.*) membutuhkan waktu lebih dari 30 md dalam jendela 60 detik, ketika setidaknya 100 sampel dikumpulkan.
Penginstalan
Langkah-langkah berikut memandu Anda mengaktifkan komponen pembuatan profil pada agen dan mengonfigurasi batas sumber daya yang memicu profil jika dilanggar.
Konfigurasikan ambang sumber daya yang menyebabkan profil dikumpulkan:
Peringatan
Tombol Jejak Profiler di kanan bawah tidak didukung untuk Java.
Pilih Pemicu
Konfigurasikan pemicu CPU, Memori, atau Permintaan yang diperlukan (jika diaktifkan) dan pilih Terapkan.
Peringatan
Java Profiler tidak mendukung pemicu "Pengambilan Sampel". Tindakan mengonfigurasi ini tidak akan berpengaruh.
Setelah langkah-langkah ini selesai, agen akan memantau penggunaan sumber daya proses Anda dan memicu profil ketika ambang batas terlampaui. Saat profil dipicu dan diselesaikan, profil dapat dilihat dari instans Application Insights dalam bagian Performa ->Profiler . Dari layar tersebut profil dapat diunduh, setelah mengunduh file rekaman JFR dapat dibuka dan dianalisis dalam alat yang Anda pilih, misalnya Oracle JDK Mission Control (JMC).
Konfigurasi
Konfigurasi pengaturan pemicu Java Profiler, seperti ambang batas dan periode pembuatan profil, diatur dalam UI Application Insights di bawah Performa>Profiler>Pemicu, seperti yang dijelaskan dalam Penginstalan.
Selain itu, banyak parameter dapat dikonfigurasi menggunakan variabel lingkungan dan file konfigurasi applicationinsights.json
.
Mengonfigurasi Konten Profil
Jika Anda ingin menyediakan konfigurasi profil kustom, ubah memoryTriggeredSettings
, dan cpuTriggeredSettings
untuk menyediakan jalur ke file .jfc
dengan konfigurasi yang diperlukan.
Profil dapat dihasilkan/diedit di antarmuka pengguna JDK Mission Control (JMC) di bawah menu Window->Flight Recording Template Manager
dan kontrol atas bendera individual ditemukan di dalam Edit->Advanced
pada antarmuka pengguna ini.
Variabel lingkungan
APPLICATIONINSIGHTS_PREVIEW_PROFILER_ENABLED
: boolean (bawaan:true
)Mengaktifkan/menonaktifkan fitur pembuatan profil. Secara bawaan, fitur diaktifkan pada agen (sejak agen 3.4.9). Namun, meskipun fitur ini diaktifkan dalam agen, profil tidak dikumpulkan kecuali diaktifkan dalam Portal seperti yang dijelaskan dalam Penginstalan.
File konfigurasi
Konfigurasi contoh:
{
"preview": {
"profiler": {
"enabled": true,
"cpuTriggeredSettings": "profile-without-env-data",
"memoryTriggeredSettings": "profile-without-env-data",
"manualTriggeredSettings": "profile-without-env-data",
"enableRequestTriggering": true,
"periodicRecordingDurationSeconds": 60
}
}
}
memoryTriggeredSettings
Konfigurasi ini digunakan jika profil memori diminta.
Nilai ini bisa jadi adalah salah satu dari:
-
profile-without-env-data
(nilai default). Profil dengan peristiwa sensitif tertentu dinonaktifkan, lihat Bagian peringatan untuk detailnya. -
profile
. Menggunakan konfigurasiprofile.jfc
yang disertakan dengan JFR. - Jalur ke file konfigurasi jfc kustom pada sistem file, misalnya,
/tmp/myconfig.jfc
.
cpuTriggeredSettings
Konfigurasi ini digunakan jika profil cpu diminta.
Nilai ini bisa jadi adalah salah satu dari:
-
profile-without-env-data
(nilai default). Profil dengan peristiwa sensitif tertentu dinonaktifkan, lihat Bagian peringatan untuk detailnya. -
profile
. Menggunakan konfigurasi jfcprofile.jfc
yang disertakan dengan JFR. - Jalur ke file konfigurasi jfc kustom pada sistem file, misalnya,
/tmp/myconfig.jfc
.
manualTriggeredSettings
Konfigurasi ini digunakan jika profil manual diminta.
Nilai ini bisa jadi adalah salah satu dari:
-
profile-without-env-data
(nilai default). Profil dengan peristiwa sensitif tertentu dinonaktifkan, lihat Bagian peringatan untuk detailnya. -
profile
. Menggunakan konfigurasi jfcprofile.jfc
yang disertakan dengan JFR. - Jalur ke file konfigurasi jfc kustom pada sistem file, misalnya,
/tmp/myconfig.jfc
.
enableRequestTriggering
Apakah pembuatan profil JFR harus dipicu berdasarkan konfigurasi permintaan.
Nilai ini bisa jadi adalah salah satu dari:
-
true
Pembuatan profil dipicu jika ambang pemicu permintaan dilanggar. -
false
(nilai default). Konfigurasi permintaan tidak memicu pembuatan profil.
periodicRecordingDurationSeconds
Durasi perekaman pembuatan profil dalam hitung detik saat sesi pembuatan profil dimulai dengan menggunakan tombol Profil sekarang . Nilai defaultnya adalah 120
.
Langkah selanjutnya
- Untuk meninjau tanya jawab umum (FAQ), lihat Tanya Jawab Umum Java Profiler