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
Java Tanılama Aracısını Azure Kubernetes Service (AKS) kümesindeki pod kapsayıcısında çalışan Java uygulamasına eklemek için AKS eklentisinde Java Tanılama Aracısını kullanın.
Ajanı ekledikten sonra, bir sınıf işlevinin etrafına günlükler ekleyerek sorun giderebilirsiniz. İş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üğü kullanın. Bu analiz, uygulamanızda performans sorunlarını bulmanıza yardımcı olabilir.
Tanılama sekmesi eklenti yapılandırmasını gösterir. Burada şunları yapabilirsiniz:
- 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 yenileyin.
IntelliJ IDEA Tanılama sekmesinin ekran görüntüsü
Aracıyı ekleme
Pod kapsayıcısının bir /tmp klasörü ve /tmp klasörüne yazma izni olmalıdır.
Aracıyı JVM'ye eklemeyi etkinleştirmek için JVM seçeneklerine eklemeyin -XX:+DisableAttachMechanism .
Arka uç tanılama sunucusu 6 saat sonra kapanır.
Aracıyı eklemek için aracıyı eklemek istediğiniz podu seçin ve ardından 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 bağladıktan sonra, sorun gidermek için kullanın.
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.
İşleve günlük kaydı eklemek için düzenleyicide sağ tıklayın ve aşağıdaki ekran görüntüsünde gösterildiği gibi Java Diagnostic>Add AroundLog öğesini 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
Ajanın eklediği tüm günlük kayıtlarını kaldırmak için Remove All AroundLogs seçeneğini belirleyin.
Not
Pod içindeki kısa ömürlü bir kapsayıcı, arka uç Java aracısını kullanır. Pod yeniden başlatıldıktan sonra aracı kaldırılır.
Sorun giderme
Aracıyı, özellik için önceden etkinleştirilmemiş bir düğümde çalışan bir poda bağlamaya çalıştığınızda zaman aşımı oluşabilir. Zaman aşımı, düğümün önce aracı görüntüsünü alması gerektiğinden gerçekleşir ve bu da gecikmeye neden olur. Bu gecikme oluştuğunda, aracının bağlı olup olmadığını denetlemek için Yenile'yi seçin veya aracıyı yeniden eklemeyi deneyin.
Bağlama işlemi başarısız olursa geçici kapsayıcıdaki diagnostic-container-<hashcode> adlı günlüğü kontrol edin.
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