Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede Java Tanılama Aracısı'nı kullanmaya başlama işlemi açıklanmaktadır. Ayrıca IntelliJ IDEA için AKS eklentisinde Java Tanılama Aracı'nı da açıklar.
Java Tanılama Aracısı, Java işlemi sorunlarını gidermeye yönelik bir Java aracısıdır. Uygulamayı yeniden derlemesi, yeniden dağıtması veya yeniden başlatması gerekmez. Şu anda bir Java sınıfındaki işlevin çevresine log eklemeyi desteklemektedir. Fonksiyon çağrıldığında, fonksiyonun tükettiği toplam sürenin hesaplanmasıyla birlikte log yazdırılır.
Önkoşullar
kümenizde diag4j yüklüdür.
Java LTS sürüm 11, 17 veya 21.
IntelliJ IDEA eklentisi, Ayarlar>Eklentiler>Diskten Eklenti Yüklearacılığıyla yerel olarak yüklenir.
Sorun gidermek için Java uygulamaları. Daha fazla bilgi için bkz. Spring Boot Uygulamasını Azure Kubernetes Servicedağıtma.
Bağlantı noktası yönlendirmeyi yapılandırma
Aracı servisine bağlantı noktası yönlendirme oluşturmak için aşağıdaki komutu kullanın:
kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080
IntelliJ IDEA için AKS eklentisinde Java Tanılama Aracı'nı kullanma
Azure Kubernetes Service (AKS) kümesindeki bir pod kapsayıcısında çalışan Java uygulamasına Java Tanılama Aracını eklemek için AKS eklentisinde bulunan Java Tanılama Aracını kullanabilirsiniz.
Aracıyı ekledikten sonra, bir sınıf işlevinin çevresine günlük ekleme gibi sorun giderme görevlerini gerçekleştirmenizi sağlar. İşlevin yürütülp yürütülmediğini test etmek ve işlevde harcanan toplam süreyi hesaplamak için bu günlüğü kullanabilirsiniz. Bu analiz, uygulamanızda performans sorunlarını bulmanıza yardımcı olabilir.
Eklenti yapılandırması Tanılama sekmesinde gösterilir. Burada aşağıdaki görevleri gerçekleştirebilirsiniz:
- Aracı hizmetine yönlendirilen yerel bağlantı noktasını yapılandırın.
- Yerel ortamınızda
kubeconfigile listelenen podları görüntüleyin. - Pod tablosunu yenilemek için Yenile'yi seçin. Kümeleri değiştirdikten sonra, yeni kümedeki podları yüklemek için tabloyu yenilemeniz gerekir.
IntelliJ IDEA Tanılama sekmesinin ekran görüntüsü
Aracıyı ekleme
Pod kapsayıcısının /tmp klasörü olmalı ve /tmp klasörüne yazma izni olmalıdır.
Aracıyı JVM'ye eklemeyi etkinleştirmek için JVM seçeneklerine -XX:+DisableAttachMechanism eklemediğinizden emin olun.
Arka uç tanılama sunucusu 6 saat sonra kapatılır.
Aracıyı eklemek için, aracıyı eklemek istediğiniz pod'a tıklayın ve kapsayıcıyı seçin. Aracıyı poddaki tek bir kapsayıcıya bağlayabilirsiniz. Ardından, ek işleminin tamamlanmasını bekleyin.
Etkin pod kapsayıcısını ayarlama
Aracıyı başarıyla ekledikten sonra sorun gidermek için kullanabilirsiniz.
Birden çok pod aracıyı eklemiş olabilir, bu nedenle aktif bir pod ayarlamanız gerekir. IntelliJ IDEA'da, Tanılama sekmesinde bir pod'a sağ tıklayın ve ardından Etkin olarak ayarla'yı seçin.
Sınıf fonksiyonunun etrafına günlük ekleme
30 dakika sonra, yapılandırılan günlük otomatik olarak kaldırılır.
Aracı kullanarak sınıf işlevlerine günlük kaydı ekleyebilirsiniz ancak arabirimler, oluşturucular vb. ekleyemezsiniz.
Bir işlevde günlüğe ekleme yapmak için, düzenleyicide üzerine sağ tıklayın ve ardından aşağıdaki ekran görüntüsünde gösterildiği gibi Java Tanılama>AroundLogEkle'yi seçin.
Bu örnekte, günlüğü ekledikten sonra, işlevin çağrılmadan önce ve sonra aşağıdaki örneğe benzer bir çıktı görmek için <host>/infor çağırabilirsiniz:
===== 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
Yapılandırılmış tüm günlükleri kaldırma
Aracı tarafından eklenen tüm günlükleri kaldırmak için Tüm AroundLog'ları Kaldır'ıseçin.
Not
Arka uç Java aracısı poddaki kısa ömürlü bir kapsayıcı tarafından kullanılır. Pod yeniden başlatıldıktan sonra aracı kaldırılır.
Sorun giderme
Henüz özelliği etkinleştirmemiş bir düğümde çalışan bir pod'a aracıyı eklemeye çalıştığınızda zaman aşımı oluşabilir. Zaman aşımı oluşabilir çünkü düğümün önce aracı görüntüsünü alması gerekir ve bu da gecikmeye neden olur. Bu durum oluştuğunda, aracının bağlı olup olmadığını denetlemek için Yenileme seçebilir veya aracıyı eklemeyi yeniden deneyebilirsiniz.
Ek başarısız olursa, geçici kapsayıcıda diagnostic-container-<hashcode> adlı günlüğü kontrol edebilirsiniz.
Eklentinin işlemleriyle ilgili bilgileri diag4j-agent-service-<hashcode>adlı pod kapsayıcısının altındaki günlüklerde bulabilirsiniz.
Sonraki adım
AKS'de Java Tanılama Aracı'nın (diag4j) Spring Boot Yöneticisi bileşenini kullanmaya başlama