Java Flight Recorder

Тренинг по мониторингу и профилированию приложений с помощью JFR

Титульный слайд

Описание

Проблемы с производительностью всегда стреляют в самые неподходящие моменты, и, каким бы совершенным не был код, они всё равно случаются. Значит, их нужно уметь отслеживать и выявлять заранее.

Но как это сделать, если типичный мониторинг показывает только “среднюю температуру по больнице”, а проводить глубокое профилирование на production – опасная затея? Было бы хорошо иметь внутри приложения некий “бортовой самописец”, по данным которого можно будет выявить приближающуюся аварию или хотя бы постфактум выяснить, что ей предшествовало, если она всё же случилась. К счастью, такой инструмент уже есть внутри Java-машины – Java Flight Recorder (JFR).

В этом тренинге вы узнаете, какие возможности предоставляет JFR, как использовать его в разных окружениях (от локальной машины до production) и как анализировать собираемые им данные для выявления узких и горячих мест в вашем коде. Вы также научитесь применять его в качестве альтернативы сторонним (часто отнюдь не бесплатным) профилировщикам и интегрировать его в свой код, чтобы получить “log.debug на стероидах”.

Формат тренинга описан на странице серии тренингов про Производительность.

Содержание

Теория 🎓

  1. Что такое Java Flight Recorder
    1. В чём идея
    2. Из чего состоит (части JVM и клиентская)
    3. Терминология
    4. Сколько это “стоит” по производительности
  2. Управление записью JFR
    1. Общий порядок действий
    2. Способы запуска записи (4 шт.)
  3. Знакомство с Mission Control
    1. Общие сведения
    2. Варианты дистрибутивов
    3. Конфигурация записи
    4. Отслеживание статуса записи
    5. Получение данных от JFR
  4. Как читать записанные JFR-сессии:
    1. Основы интерфейса Mission Control
    2. Работа с временными развёртками событий
    3. Как и когда искать события в общем журнале
    4. Типичные задачи, решаемые с помощью JFR
  5. Советы по применению JFR на production

Практика ⚒️

В этом тренинге практика состоит из двух частей:

  1. Разбор трёх практический кейсов (аномальных поведений) в лабораторном приложении Spring PetClinic REST при помощи JFR по следующей схеме:

    1. Описание бизнес-кейса
    2. Пояснения к реализаци
    3. Описание проблемы
    4. Анализ проблемы
    5. Устранение
  2. Учебная доработка того же лабораторного приложения с целью наделения его новыми функциями на основе кастомных событий JFR и программной подписки на события через JFR Streaming API.

Примеры слайдов

Из теоретической части занятия

Материалы в шпаргалке

  • Показания к применению
  • Управление записью
  • Просмотр записей в консоли
  • Встроенные режимы записи
  • Устройство JFR

Интересно?

Если хотите, чтобы я провёл этот тренинг в вашей компании, вы можете:

Владимир Плизга
Владимир Плизга
Программный инженер

Любимая технология: здравый смысл

Следующий