Aracılığıyla paylaş


Java Tanılama Aracısı'nı kullanmaya başlama

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

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 kubeconfig ile 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.

Kapsayıcı Seçimi iletişim kutusunun açık olduğu Tanılama sekmesini gösteren IntelliJ IDEA ekran görüntüsü.

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.

IntelliJ IDEA Tanılama sekmesinin, bir pod seçili ve

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.

AroundLog Ekle menü seçeneğinin vurgulandığı bir işlev için açılan bağlam menüsünü gösteren IntelliJ IDEA ekran görüntüsü.

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