Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как приступить к работе с агентом диагностики Java. Он также описывает инструмент диагностики Java в плагине AKS для IntelliJ IDEA.
Агент диагностики Java — это агент Java для устранения неполадок процесса Java. Не требуется пересоздавать, повторно развертывать или перезапускать приложение. В настоящее время она поддерживает добавление журналов вокруг функции в классе Java. При вызове функции журнал печатается вместе с вычислением общего времени, потребляемого функцией.
Необходимые условия
diag4j установлен в вашем кластере.
Java LTS версии 11, 17 или 21.
Плагин IntelliJ IDEA plugin, установленный локально через Настройки>Плагины>Установить плагин с диска.
Приложения Java для устранения неполадок. Дополнительные сведения см. в статье Deploy Spring Boot Application to the Служба Azure Kubernetes.
Настроить перенаправление портов
Используйте следующую команду, чтобы установить перенаправление портов в службу агента:
kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080
Использование средства диагностики Java в подключаемом модуле AKS для IntelliJ IDEA
Используйте средство диагностики Java в подключаемом модуле AKS для подключения агента диагностики Java к приложению Java, работающему в контейнере pod в кластере Azure Kubernetes Service (AKS).
После присоединения агента можно устранить неполадки, добавив журналы вокруг функции класса. Используйте этот журнал, чтобы проверить, выполняется ли функция, и вычислить общее время, затраченное на функцию. Этот анализ поможет вам найти узкие места производительности в приложении.
На вкладке "Диагностика" показана конфигурация подключаемого модуля. Здесь можно:
- Настройте локальный порт для перенаправления на службу агента.
- Просмотрите pod, перечисленные с
kubeconfigв вашей локальной среде. - Выберите Обновить, чтобы обновить таблицу pod. После переключения кластера обновите таблицу, чтобы загрузить поды в новом кластере.
Присоедините агента
Контейнер pod должен иметь папку /tmp и иметь разрешение на запись в папку /tmp .
Чтобы включить подключение агента в JVM, не добавляйте -XX:+DisableAttachMechanism в параметры JVM.
Сервер диагностики серверной части отключается через 6 часов.
Чтобы подключить агент, выберите pod, к которому нужно подключить агент, а затем выберите контейнер. Агент можно подключить только к одному контейнеру в модуле pod. Затем дождитесь завершения процесса вложения.
Установите активный контейнер Pod
После успешного подключения агента используйте его для устранения неполадок.
Возможно, несколько модулей pod ввели агент, поэтому необходимо задать активный модуль pod. В IntelliJ IDEA на вкладке Диагностика щелкните правой кнопкой мыши pod и выберите Установить как активный.
Добавление логирования в функцию класса
Настроенный журнал автоматически удаляется через 30 минут.
С помощью средства можно добавить логирование в функциях класса, но не в интерфейсах, конструкторах и т. д.
Чтобы добавить логирование в функцию, щёлкните её правой кнопкой мыши в редакторе и выберите Java Diagnostic>Add AroundLog, как показано на следующем скриншоте.
В этом примере после добавления ведения журнала можно вызвать <host>/infor, чтобы увидеть выходные данные, аналогичные следующему примеру до и после вызова функции:
===== 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
Удаление всех настроенных журналов
Чтобы удалить все журналы, добавленные агентом, выберите Remove All AroundLogs.
Заметка
В поде эфемерный контейнер использует внутренний агент Java. После перезапуска pod, агент будет удален.
Устранение неполадок
При попытке подключить агент к поду, работающему на узле, на котором эта функция еще не включена, может произойти тайм-аут. Тайм-аут возникает, поскольку узлу сначала нужно загрузить образ агента, из-за чего возникает задержка. При возникновении этой задержки выберите "Обновить ", чтобы проверить, подключен ли агент, или повторите попытку присоединения агента.
Если не удаётся выполнить подключение, проверьте журнал с именем diagnostic-container-<hashcode> в эфемерном контейнере.
Сведения об операциях плагина можно найти в журналах контейнера pod с именем diag4j-agent-service-<hashcode>.
Следующий шаг
Начало работы с компонентом администратора Spring Boot средства диагностики Java (diag4j) в AKS