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.
Gunakan Alat Diagnostik Performa Azure untuk Java di Agen SRE Azure untuk menyelidiki masalah performa JVM di Azure Kubernetes Service (AKS). Alat ini mengumpulkan data pembuatan profil dari beban kerja Java yang sedang berjalan dan mengembalikan temuan yang membantu Anda mengisolasi hambatan tanpa membuat aplikasi offline.
Prerequisites
- Aplikasi Java yang berjalan di kluster AKS
- Lingkungan Agen SRE Azure yang dapat mengakses kluster target
- Izin untuk memeriksa beban kerja dan menjalankan diagnostik melalui agen SRE Azure
-
kubectldiinstal dan dikonfigurasi jika Anda ingin menambahkan anotasi dari baris perintah
Diagnostik yang didukung
Azure Alat Diagnostik Performa untuk Java membantu mengidentifikasi masalah seperti:
- Ketidakefisienan pengumpulan sampah dan jeda panjang
- Penggunaan CPU berlebihan atau kurang digunakan
- Perilaku yang bergantung pada I/O yang memengaruhi waktu respons
- Kontensi utas dan kemacetan sinkronisasi
Mengaktifkan diagnostik Java
Untuk mengaktifkan diagnostik, beri label beban kerja sebagai aplikasi Java dengan menambahkan anotasi languageStack: java.
Tambahkan anotasi ke spesifikasi pod Anda
Tambahkan anotasi ke metadata pod dalam definisi beban kerja Anda:
apiVersion: v1
kind: Pod
metadata:
name: your-java-app
annotations:
languageStack: java
spec:
containers:
- name: app
image: your-java-app:latest
Menambahkan anotasi dengan menggunakan kubectl
Jika pod sudah berjalan, tambahkan anotasi dari baris perintah:
kubectl annotate pod your-java-app languageStack=java
Saat Anda menambahkan anotasi ini, Anda mengonfirmasi bahwa:
- Pod menjalankan aplikasi Java.
- Azure SRE Agent dapat menjalankan diagnostik Java terhadap pod.
Note
Proses diagnostik dirancang untuk meminimalkan gangguan, tetapi Java Flight Recorder masih menambahkan beberapa overhead. Validasi pengalaman di lingkungan nonproduksi sebelum Anda menggunakannya dalam produksi.
Apa yang terjadi selama proses diagnostik
Saat Azure SRE Agent memulai eksekusi diagnostik Java, agen tersebut:
- Membuat wadah ephemeral di pod target.
- Melampirkan kontainer diagnostik ke kontainer Java.
- Mengumpulkan telemetri dengan menggunakan Java Flight Recorder (JFR).
- Menganalisis data yang diambil.
- Menghapus kontainer diagnostik setelah proses selesai.
Proses ini membuat aplikasi tetap online saat Azure Agen SRE mengumpulkan data yang dibutuhkannya.
Tentang kontainer sementara
Kubernetes menyimpan catatan kontainer ephemeral yang dihentikan. Jika Anda menjalankan kubectl describe pod, Anda akan terus melihat kontainer diagnostik yang sudah selesai setelah eksekusi berakhir. Untuk mengurangi kebisingan, Azure SRE Agent membatasi proses diagnostik hingga lima kontainer sementara per pod.
Meminta diagnostik Java
Anda dapat meminta diagnostik secara manual, atau Azure SRE Agent dapat memicunya saat mendeteksi kemungkinan masalah performa.
Menjalankan permintaan diagnostik manual
Di Azure SRE Agent, buka pengalaman obrolan dan berikan detail beban kerja untuk layanan Java yang ingin Anda periksa:
Analyze the performance of:
pod: my-petclinic-app
container: spring-petclinic-rest
namespace: production
aks instance: my-aks-cluster
Sertakan nama pod, nama kontainer, namespace layanan, dan nama kluster AKS sehingga Azure Agen SRE dapat menargetkan beban kerja yang benar.
Membuat sub-agen kustom untuk diagnostik Java
Jika tim Anda menginginkan alur kerja diagnostik khusus, buat sub-agen kustom yang merutekan permintaan ke alat diagnostik Java.
Mengonfigurasi sub-agen
- Di Azure SRE Agent, buka Sub-Agent Builder.
- Pilih Buat Sub-Agen Baru.
- Tambahkan konfigurasi dari alat dan perilaku pengalihan yang Anda inginkan.
Konfigurasi contoh:
api_version: azuresre.ai/v1
kind: AgentConfiguration
spec:
name: AKSDiagnosticAgent
system_prompt: >-
Take the details of a diagnostic analysis to be performed on an AKS container
and hand off to the appropriate diagnostic tool. If you need to find the resource
to diagnose, use the SearchResourceByName and ListResourcesByType tools.
tools:
- GetCPUAnalysis
- GetMemoryAnalysis
- SearchResourceByName
- ListResourcesByType
- AnalyzeJavaAppInAKSContainer
handoff_description: >-
Use this agent when the user requests an AKS diagnostic analysis or when the
investigation requires a Java diagnostics run.
agent_type: Autonomous
Gunakan sub-agen
Setelah membuat sub-agen, Anda dapat mengarahkan permintaan ke sub-agen tersebut dari obrolan:
/agent AKSDiagnosticAgent I am having a performance issue in:
pod: illuminate-test-petclinic
container: spring-petclinic-rest
namespace: illuminate-test
aks instance: jeg-aks
Sub-agen memulai alur kerja diagnostik Java dan mengembalikan temuan dengan langkah berikutnya yang direkomendasikan.
Mendelegasikan diagnostik dari peringatan
Anda juga dapat merutekan investigasi berbasis pemberitahuan ke sub-agen sehingga Azure Agen SRE dapat memulai diagnostik Java yang dijalankan sebagai bagian dari alur respons otomatis.
Menginterpretasikan hasil diagnostik
Setelah analisis selesai, Azure Agen SRE mengembalikan hasil seperti:
- Identifikasi akar penyebab untuk hambatan utama
- Wawasan diagnostik seperti durasi jeda GC atau durasi tunggu thread
- Rekomendasi untuk remediasi
Gunakan hasilnya untuk:
- Sesuaikan argumen JVM atau ukuran heap
- Mengoptimalkan jalur kode aplikasi
- Menskalakan sumber daya AKS
- Meningkatkan pemantauan dan pemberitahuan