Bagikan melalui


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

Anda dapat menggunakan 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 Anda melampirkan agen, agen memungkinkan Anda melakukan tugas pemecahan masalah seperti menambahkan log pada fungsi kelas. Anda dapat menggunakan 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.

Konfigurasi plugin ditampilkan pada tab Diagnostik. Di sini, Anda bisa melakukan tugas-tugas berikut:

  • 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, Anda harus me-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 melampirkan agen di JVM, pastikan untuk tidak menambahkan -XX:+DisableAttachMechanism ke opsi JVM.

Server diagnostik backend ditutup setelah 6 jam.

Untuk melampirkan agen, klik pod yang ingin Anda lampirkan agen, 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 berhasil melampirkan agen, Anda dapat menggunakannya 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 pencatatan pada fungsi, klik kanan pada fungsi di dalam editor, lalu pilih Diagnostik Java>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 All AroundLogs.

Nota

Agen Java backend digunakan oleh kontainer ephemeral dalam pod. Setelah pod dimulai ulang, agen dihapus.

Pemecahan masalah

Batas waktu dapat terjadi ketika Anda mencoba melampirkan agen ke pod yang berjalan pada node yang belum mengaktifkan fitur. Batas waktu dapat terjadi karena simpul harus terlebih dahulu mengambil gambar agen, yang menyebabkan penundaan. Ketika ini terjadi, Anda dapat memilih Refresh untuk memeriksa apakah agen sudah terpasang, atau Anda dapat mencoba menghubungkan agen lagi.

Jika lampiran gagal, Anda dapat memeriksa log bernama diagnostic-container-<hashcode> di wadah sementara.

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