Mulai menggunakan Agen Diagnostik Java

Artikel ini menjelaskan cara mulai menggunakan Agen Diagnostik Java. Ini juga menjelaskan Java Diagnostic Tool pada plugin AKS untuk IntelliJ IDEA.

Agen Diagnostik Java adalah agen Java untuk memecahkan masalah proses Java. Tidak perlu membangun kembali, menyebarkan ulang, atau memulai ulang aplikasi. Saat ini, ini mendukung penambahan log di sekitar fungsi di kelas Java. Ketika fungsi dipanggil, log dicetak bersama dengan perhitungan total waktu yang dikonsumsi oleh fungsi.

Prasyarat

Mengatur penerusan port

Gunakan perintah berikut untuk mengonfigurasi penerusan port ke layanan agen:

kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080

Gunakan Java Diagnostic Tool pada plugin AKS untuk IntelliJ IDEA

Gunakan Java Diagnostic Tool pada plugin AKS untuk melampirkan Java Diagnostic Agent ke aplikasi Java yang berjalan dalam kontainer pod pada kluster Azure Kubernetes Service (AKS).

Setelah melampirkan agen, Anda dapat memecahkan masalah dengan menambahkan log di sekitar fungsi kelas. Gunakan log ini untuk menguji apakah fungsi dijalankan dan untuk menghitung total waktu yang dihabiskan dalam fungsi. Analisis ini dapat membantu Anda menemukan hambatan performa di aplikasi Anda.

Tab Diagnostik menunjukkan konfigurasi plugin. Di sini, Anda dapat:

  • Konfigurasikan port lokal yang diteruskan ke layanan agen.
  • Lihat pod yang tercantum dengan kubeconfig di lingkungan lokal Anda.
  • Pilih Perbarui untuk memperbarui tabel Pod. Setelah Anda beralih kluster, refresh tabel untuk memuat pod di kluster baru.

Cuplikan layar tab Diagnostik INTELLIJ IDEA.

Melampirkan agen

Kontainer pod harus memiliki folder /tmp , dan harus memiliki izin tulis ke folder /tmp .

Untuk mengaktifkan pemasangan agen pada JVM, jangan tambahkan -XX:+DisableAttachMechanism ke opsi JVM.

Server diagnostik backend ditutup setelah 6 jam.

Untuk melampirkan agen, pilih pod yang ingin Anda lampirkan agennya, lalu pilih kontainer. Anda hanya dapat menautkan agen ke satu kontainer di pod. Kemudian, tunggu hingga proses lampiran selesai.

Cuplikan layar IntelliJ IDEA yang memperlihatkan tab Diagnostik dengan kotak dialog Pemilihan Kontainer terbuka.

Mengatur kontainer pod aktif

Setelah Anda berhasil menghubungkan agen, gunakan agen tersebut untuk pemecahan masalah.

Beberapa pod mungkin telah menyuntikkan agen, jadi Anda harus mengatur pod aktif. Di IntelliJ IDEA, pada tab Diagnostik, klik kanan pod dan pilih Pilih sebagai yang aktif.

Cuplikan layar tab Diagnostik IntelliJ IDEA dengan pod dipilih dan item menu

Menambahkan pengelogan di sekitar fungsi kelas

Log yang dikonfigurasi secara otomatis dihapus setelah 30 menit.

Anda dapat menggunakan alat ini untuk menambahkan pengelogan di sekitar fungsi kelas, tetapi tidak antarmuka, konstruktor, dan sebagainya.

Untuk menambahkan pengelogan ke fungsi, klik kanan di editor, lalu pilih Java Diagnostic>Tambahkan AroundLog, seperti yang ditunjukkan pada cuplikan layar berikut.

Cuplikan layar IntelliJ IDEA yang memperlihatkan menu konteks yang dibuka untuk fungsi dengan opsi menu Tambahkan AroundLog disorot.

Dalam contoh ini, setelah menambahkan pengelogan, Anda dapat memanggil <host>/infor untuk melihat output yang mirip dengan contoh berikut sebelum dan sesudah fungsi dipanggil:

===== START ===== Method: updateInformation Start Time: 2024-12-12T07:37:55.404107848Z
Done with the validation
Done with the DB access
Done with the data filtering
===== END ===== Method: updateInformation End Time: 2024-12-12T07:37:55.404316940Z Total Time: 0 milliseconds

Menghapus semua log yang dikonfigurasi

Untuk menghapus semua log yang ditambahkan oleh agen, pilih Hapus Semua AroundLogs.

Nota

Kontainer sementara dalam pod menggunakan agen Java backend. Setelah pod dimulai ulang, agen dihapus.

Pemecahan masalah

Timeout dapat terjadi saat Anda mencoba menghubungkan agen ke pod yang berjalan pada node yang belum diaktifkan untuk fitur tersebut. Timeout terjadi karena node perlu mengambil image agen terlebih dahulu, yang menyebabkan penundaan. Ketika penundaan ini terjadi, pilih Refresh untuk memeriksa apakah agen terpasang, atau coba lampirkan agen lagi.

Jika lampiran gagal, periksa log bernama diagnostic-container-<hashcode> dalam kontainer ephemeral.

Anda dapat menemukan informasi tentang operasi plugin di log di bawah kontainer pod bernama diag4j-agent-service-<hashcode>.

Langkah berikutnya

Mulai menggunakan komponen Admin Spring Boot dari Java Diagnostic Tool (diag4j) di AKS