Профиль сервиса

Профиль сервиса — это раздел Axelix для одного сервиса. Он объединяет все экраны диагностики и проверки одного сервиса Spring Boot за одной боковой панелью, чтобы можно было переключаться между бинами, логгерами, дампами потоков и остальным, не теряя контекста рассматриваемого сервиса.

Чтобы войти в Профиль сервиса, нажмите на карточку сервиса на Панели. Первый экран, на который вы попадаете, — это Детали.

Структура

В Профиле сервиса есть два раздела:

  • На левой боковой панели перечислены все страницы возможностей, доступные для сервиса.
  • В основной области контента отображается текущая выбранная страница возможности.

Группы боковой панели

Боковая панель разделена на три группы. Каждую группу можно развернуть или свернуть независимо, а текущая открытая страница выделена.

Аналитика

Общая информация о работе сервиса.

  • Детали: визитка сервиса. Показывает данные сборки, Git-ревизию, поставщика JDK и метаданные среды выполнения, плюс действие Выгрузить состояние, которое экспортирует ZIP-архив с выбранными диагностическими данными (дамп кучи, дамп потоков, логи, бины, кэши и т. д.) для оффлайн-анализа.
  • Метрики: метрики Micrometer в реальном времени, предоставляемые сервисом, автоматически сгруппированные по префиксу в логические категории — JVM, HTTP, JDBC и т.д.. В каждую метрику можно провалиться, чтобы увидеть её текущее значение и параметры тегов.
  • Логгеры: список всех настроенных логгеров и групп логгеров в сервисе с указанием текущего уровня. Уровень можно менять на лету (например, поднять пакет до DEBUG, пока воспроизводится баг), задать его только до выбранного времени и сбросить обратно к исходному значению, когда закончите. Также доступно как MCP-инструмент.
  • Анализатор зависимостей: зависимости, которые использует приложение, сгруппированные по экосистемам (персистентность, веб, безопасность и другие), со статусом поддержки каждого проекта и окном OSS-поддержки линейки Spring Boot, на которой работает приложение. Пункт появляется, только если стартер сервиса это поддерживает.

Spring Framework

Интроспекция, специфичная для Spring.

  • Окружение: разрешённый Spring Environment сервиса. Каждое активное свойство сгруппировано по источнику (системные свойства, application.yaml, аргументы командной строки и так далее), поэтому вы видите не только фактическое значение, но и то, какой источник свойств его предоставил, какие значения перекрыты источником с более высоким приоритетом и какие свойства устарели. Также доступно как MCP-инструмент.
  • Бины: каждый бин в контексте приложения с его областью видимости (Singleton, Prototype, Request, Session и другими), зависимостями, псевдонимами, квалификаторами и источником (@Component, @Bean-метод, FactoryBean, синтетический). Бины, за которыми стоит @ConfigurationProperties, ведут напрямую на соответствующую запись на странице Свойства конфигурации. Также доступно как MCP-инструмент.
  • Свойства конфигурации: все бины, помеченные @ConfigurationProperties, и текущее значение каждого их поля. Позволяет увидеть, что в действительности содержится в ваших типизированных объектах конфигурации во время работы, вместо того чтобы выводить это из YAML. Также доступно как MCP-инструмент.
  • Запланированные задачи: каждая @Scheduled задача в сервисе, сгруппированная по типу триггера (cron, фиксированная задержка, фиксированная частота). Задачу можно приостановить или возобновить, отредактировать её расписание и запустить разовый прогон вручную. Также доступно как MCP-инструмент.
  • Условия: результат вычисления Spring-условий @Conditional для каждого бина-кандидата, разделённый на положительные и отрицательные совпадения. Эта страница — самый быстрый способ выяснить, какое условие помешало автоконфигурации поставить ожидаемый вами бин. Также доступно как MCP-инструмент.
  • Кэши: Spring-кэши, зарегистрированные в сервисе, сгруппированные по их кэш менеджерам. Показывает частоту попаданий и промахов, примерное количество записей и позволяет очищать отдельные кэши или сразу все. Также доступно как MCP-инструмент.
  • Мониторинг транзакций: каждый @Transactional метод, который выполнял сервис, с временем выполнения и проблемами, найденными внутри транзакции: блокирующими сетевыми вызовами, запросами N+1 и пагинацией в памяти. Также доступно как MCP-инструмент.
  • Карта сущностей: проверяет JPA-маппинг каждой сущности и показывает ассоциации, замапленные так, что это стоит лишних запросов: жадную загрузку, @ManyToMany на основе List, каскад REMOVE или ALL и однонаправленный @OneToMany. Также доступно как MCP-инструмент.

JVM

Диагностика на уровне JVM.

  • Дамп потоков: снимок каждого живого потока JVM с его состоянием, стеком вызовов, счётчиками blocked/waited и информацией о владельце блокировки. На странице также можно переключать мониторинг конкуренции потоков за блокировки на работающей JVM.
  • Сборщик мусора: логи сборщика мусора, поступающие из сервиса. Логирование сборщика мусора обычно отключено в продакшен-JVM по умолчанию, поэтому страница выставляет действие Включить логирование сборщика мусора, которое его включает без перезапуска сервиса.

Доступ через MCP

Некоторые из перечисленных выше функций также доступны как инструменты MCP-сервера, встроенного в Axelix Master, так что ИИ-агент, подключённый по MCP, может прочитать те же данные. Полный каталог зарегистрированных инструментов можно посмотреть на экране MCP, а актуальный справочный список с именами, тегами и разграничением доступа по ролям живёт в MCP-инструменты.

См. также

На этой странице