Сбор дампа кучи и дампа потока вручную и использование средства Java Flight Recorder в Azure Spring Apps
Примечание.
Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.
Эта статья относится к: ✔️ Basic/Standard ✔️ Enterprise
В этой статье описывается, как вручную создать дамп кучи или дамп потока и как запустить JFR.
Умение эффективно устранять неполадки имеет решающее значение для способности устранять проблемы в рабочих средах и обеспечивать работу организации в сети. В Azure Spring Apps доступна потоковая передача журналов приложений и запросов, информативные метрики, оповещения, распределенная трассировка и т. д. Однако при получении оповещений о запросах с высокой задержкой, утечке кучи виртуальной машины Java или высокой загрузке ЦП в вашем распоряжении нет решения для "последней мили". По этой причине мы обеспечили вам возможность создать дамп кучи вручную, создать дамп потока и запустить JFR.
Необходимые компоненты
- Развернутый экземпляр службы Azure Spring Apps. Чтобы приступить к работе, ознакомьтесь со статьей Краткое руководство. Развертывание первого приложения в Azure Spring Apps.
- По крайней мере одно приложение, ранее созданное в этом экземпляре службы.
- Собственное постоянное хранилище, как описано в разделе Как включить собственное постоянное хранилище в Azure Spring Apps. Это хранилище используется для сохранения созданных диагностических файлов. Пути, которые вы указываете в приведенных ниже значениях параметров, должны находиться под путем подключения постоянного хранилища, привязанного к приложению. Чтобы использовать путь под путем подключения, нужно заранее создать вложенный путь.
Создание дампа кучи
Используйте следующую команду, чтобы создать дамп кучи приложения в Azure Spring Apps.
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>
Создание дампа потока
Используйте следующую команду, чтобы создать дамп потока вашего приложения в Azure Spring Apps.
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
Используйте следующую команду, чтобы запустить JFR для вашего приложения в Azure Spring Apps.
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>
Для duration
по умолчанию задано значение 60 секунд.
Создание дампа с помощью портала Azure
Выполните следующие действия, чтобы создать дамп кучи или потока вашего приложения в Azure Spring Apps.
На портале Azure перейдите к нужному приложению и нажмите Устранение неполадок.
В области Устранение неполадок выберите экземпляр приложения и тип нужного дампа.
В поле Путь к файлу укажите путь подключения постоянного хранилища.
Нажмите Собрать.
Получение диагностических файлов
Перейдите по целевому пути к файлу в постоянном хранилище и найдите дамп или файл JFR. Здесь вы можете скачать их на локальный компьютер. Имя созданного файла будет подобным <app-instance>_heapdump_<time-stamp>.hprof
для дампа кучи, <app-instance>_threaddump_<time-stamp>.txt
для дампа потока и <app-instance>_JFR_<time-stamp>.jfr
для файла JFR.