Aracılığıyla paylaş


Yığın dökümünü ve iş parçacığı dökümünü el ile yakalayın ve Azure Spring Apps'te Java Flight Recorder'ı kullanın

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal

Bu makalede, yığın dökümü veya iş parçacığı dökümünü el ile oluşturma ve Java Flight Recorder'ın (JFR) nasıl başlatıldığı açıklanır.

Etkili sorun giderme, üretim ortamlarındaki sorunları çözebileceğinizden ve işinizi çevrimiçi tutabildiğinizden emin olmak için kritik öneme sahiptir. Azure Spring Apps uygulama günlüğü akışı ve sorgusu, yayılan zengin ölçümler, uyarılar, dağıtılmış izleme vb. sağlar. Ancak yüksek gecikme süresi, JVM yığın sızıntısı veya yüksek CPU kullanımına sahip istekler hakkında uyarılar aldığınızda son kilometre çözümü yoktur. Bu nedenle yığın dökümünü el ile oluşturmanıza, iş parçacığı dökümü oluşturmanıza ve JFR'yi başlatmanıza olanak sağladık.

Önkoşullar

  • Dağıtılan bir Azure Spring Apps hizmet örneği. Başlamak için bkz . Hızlı Başlangıç: İlk uygulamanızı Azure Spring Apps'e dağıtma.
  • Hizmet örneğinizde en az bir uygulama zaten oluşturulmuştur.
  • Azure Spring Apps'te kendi kalıcı depolama alanınızı etkinleştirme bölümünde açıklandığı gibi kendi kalıcı depolama alanınız. Bu depolama, oluşturulan tanılama dosyalarını kaydetmek için kullanılır. Aşağıdaki parametre değerlerinde sağladığınız yollar, uygulamanıza bağlı kalıcı depolamanın bağlama yolu altında olmalıdır. Bağlama yolunun altında bir yol kullanmak istiyorsanız, alt yolu önceden oluşturduğunuzdan emin olun.

Yığın dökümü oluşturma

Azure Spring Apps'te uygulamanızın yığın dökümünü oluşturmak için aşağıdaki komutu kullanın.

az spring app deployment generate-heap-dump \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path>

İş parçacığı dökümü oluşturma

Azure Spring Apps'te uygulamanızın iş parçacığı dökümünü oluşturmak için aşağıdaki komutu kullanın.

az spring app deployment generate-thread-dump \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path>

JFR'i başlatma

Azure Spring Apps'te uygulamanız için JFR'yi başlatmak için aşağıdaki komutu kullanın.

az spring app deployment start-jfr \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path> \
    --duration <duration-of-JFR>

için duration varsayılan değer 60 saniyedir.

Azure portalını kullanarak döküm oluşturma

Azure Spring Apps'te uygulamanızın yığın veya iş parçacığı dökümünü oluşturmak için aşağıdaki adımları kullanın.

  1. Azure portalında hedef uygulamanıza gidin ve sorun giderme'yi seçin.

    Sorun Giderme düğmesinin vurgulandığı uygulamaya Genel Bakış sayfasını gösteren Azure portalının ekran görüntüsü.

  2. Sorun Giderme bölmesinde uygulama örneğini ve toplamak istediğiniz döküm türünü seçin.

    Azure portalı Sorun Giderme bölmesinin ekran görüntüsü.

  3. Dosya yolu alanında, kalıcı depolamanızın bağlama yolunu belirtin.

  4. Topla'ya tıklayın.

Tanılama dosyalarınızı alma

Kalıcı depolama alanınızda hedef dosya yoluna gidin ve dökümünüzü/JFR'nizi bulun. Buradan bunları yerel makinenize indirebilirsiniz. Oluşturulan dosyanın adı yığın dökümü, <app-instance>_threaddump_<time-stamp>.txt iş parçacığı dökümü ve <app-instance>_JFR_<time-stamp>.jfr JFR dosyası için benzer <app-instance>_heapdump_<time-stamp>.hprof olacaktır.

Sonraki adımlar