Spec-Zone.ru › OpenJDK 25

Интерфейс FlightRecorderMXBean

Все суперинтерфейсы:
PlatformManagedObject
public interface FlightRecorderMXBean extends PlatformManagedObject
Интерфейс управления для контроля Flight Recorder.

Имя объекта для идентификации MXBean на платформенном сервере MBean:

jdk.management.jfr:type=FlightRecorder

Flight Recorder можно настроить следующими способами:

  • Параметры записи
    Укажите длительность записи, а также место и время выгрузки данных.
  • Настройки
    Укажите, какие события следует включить и какие данные должно собирать каждое событие.
  • Конфигурации
    Предварительно заданные наборы настроек, обычно полученные из файла настроек, которые одновременно определяют конфигурацию нескольких событий.

Описание синтаксиса настроек см. в документации пакета jdk.jfr, а сведения о конфигурации — в документации класса ConfigurationInfo.

Параметры записи

В следующей таблице приведены имена параметров, используемые с методами setRecordingOptions(long, Map) и getRecordingOptions(long).

Параметры записи
Имя Описание Значение по умолчанию Формат Примеры значений
name Задает понятное человеку имя записи Строковое представление идентификатора записи String "My Recording",
"profiling"
maxAge Задает, как долго данные хранятся в дисковом репозитории, прежде чем самые старые данные можно будет удалить. Работает только при условии disk=true, в противном случае этот параметр игнорируется. "0" (без ограничений) "0", если ограничение не задано; в противном случае — строковое представление положительного значения Long, за которым следует пробел и одна из следующих единиц измерения:

"ns" (наносекунды)
"us" (микросекунды)
"ms" (миллисекунды)
"s" (секунды)
"m" (минуты)
"h" (часы)
"d" (дни)
"2 h",
"24 h",
"2 d",
"0"
maxSize Задает размер данных в байтах, хранящихся в дисковом репозитории. Работает только при условии disk=true, в противном случае этот параметр игнорируется. "0" (без ограничений) Строковое представление значения Long; значение должно быть положительным "0",
"1000000000"
dumpOnExit Сохраняет данные записи на диск при выходе из виртуальной машины Java (JVM) "false" Строковое представление значения Boolean, "true" или "false" "true",
"false"
destination Задает путь, по которому записываются данные при остановке записи. "false" Формат см. в Paths#getPath.
Если этот метод вызывается из другого процесса, данные записываются на компьютере, где запущена целевая JVM. Если указан относительный путь, он отсчитывается от рабочего каталога, в котором была запущена целевая JVM.}
"c:\recording\recotding.jfr",
"/recordings/recording.jfr", "recording.jfr"
disk Сохраняет записанные данные по мере их записи "false" Строковое представление значения Boolean, "true" или "false" "true",
"false"
duration Задает продолжительность записи "0" (без ограничений, непрерывная запись) "0", если ограничение не задается; в противном случае — строковое представление положительного значения Long, за которым следует пробел и одна из следующих единиц измерения:

"ns" (наносекунды)
"us" (микросекунды)
"ms" (миллисекунды)
"s" (секунды)
"m" (минуты)
"h" (часы)
"d" (дни)
"60 s",
"10 m",
"4 h",
"0"
С версии:
9

Краткое описание полей

Модификатор и тип Поле Описание
static final String MXBEAN_NAME
Строковое представление ObjectName для FlightRecorderMXBean.

Краткое описание методов

Модификатор и тип Метод Описание
long cloneRecording(long recordingId, boolean stop)
Создает копию существующей записи, что полезно для извлечения ее фрагментов.
void closeRecording(long recordingId)
Закрывает запись с указанным идентификатором и освобождает все системные ресурсы, связанные с ней.
void closeStream(long streamId)
Закрывает поток записи с указанным идентификатором и освобождает все системные ресурсы, связанные с потоком.
void copyTo(long recordingId, String outputFile)
Записывает данные записи в указанный файл.
List<ConfigurationInfo> getConfigurations()
Возвращает список предварительно заданных конфигураций для этой виртуальной машины Java (JVM).
List<EventTypeInfo> getEventTypes()
Возвращает список зарегистрированных в данный момент типов событий.
Map<String,String> getRecordingOptions(long recordingId)
Возвращает карту с параметрами записи с указанным идентификатором (например, целевым файлом или периодом хранения записанных данных).
List<RecordingInfo> getRecordings()
Возвращает список доступных записей, которые не обязательно выполняются в данный момент.
Map<String,String> getRecordingSettings(long recordingId)
Возвращает Map с настройками записи с указанным идентификатором (например, пороговыми значениями событий).
long newRecording()
Создает запись, но не запускает ее.
long openStream(long recordingId, Map<String,String> streamOptions)
Открывает поток данных для записи с указанным идентификатором или 0, чтобы получать данные независимо от записи.
byte[] readStream(long streamId)
Читает часть данных из потока с указанным идентификатором или возвращает null, если больше нет доступных данных.
void setConfiguration(long recordingId, String contents)
Задает конфигурацию в виде строкового представления для записи с указанным идентификатором.
void setPredefinedConfiguration(long recordingId, String configurationName)
Задает предварительно определенную конфигурацию для записи с указанным идентификатором.
void setRecordingOptions(long recordingId, Map<String,String> options)
Настраивает параметры записи (например, целевой файл и период хранения данных).
void setRecordingSettings(long recordingId, Map<String,String> settings)
Задает и заменяет все предыдущие настройки указанной записи.
void startRecording(long recordingId)
Запускает запись с указанным идентификатором.
boolean stopRecording(long recordingId)
Останавливает выполняющуюся запись с указанным идентификатором.
long takeSnapshot()
Создает запись-снимок всех доступных записанных данных.

Методы, объявленные в интерфейсе PlatformManagedObject

getObjectName

Подробное описание полей

MXBEAN_NAME

static final String MXBEAN_NAME
Строковое представление ObjectName для FlightRecorderMXBean.
См. также:
  • Значения константных полей

Подробное описание методов

newRecording

long newRecording() throws IllegalStateException
Создает запись, но не запускает ее.
Возвращает:
уникальный идентификатор, который можно использовать для запуска, остановки, закрытия и настройки записи
Вызывает исключение:
IllegalStateException — если невозможно создать Flight Recorder (например, если в виртуальной машине Java (JVM) отсутствует поддержка Flight Recorder или невозможно создать либо открыть файловый репозиторий)
См. также:
  • Recording

takeSnapshot

long takeSnapshot()
Создает запись-снимок всех доступных записанных данных.

Снимок — это синтезированная запись в остановленном состоянии. Если данные недоступны, возвращается запись размером 0.

Снимок обеспечивает стабильный доступ к данным для последующих операций (например, для изменения временного интервала или уменьшения объема данных).

Вызывающий код должен закрыть запись, когда доступ к данным больше не требуется.

Возвращает:
уникальный идентификатор, который можно использовать для чтения данных записи
См. также:
  • Recording

cloneRecording

long cloneRecording(long recordingId, boolean stop) throws IllegalArgumentException
Создает копию существующей записи, что удобно для извлечения ее частей.

Клонированная запись содержит те же данные, что и исходная, но имеет новый идентификатор и имя с префиксом "Clone of recording". Если исходная запись выполняется, то клонированная запись также будет выполняться.

Параметры:
recordingId — идентификатор записи, на основе которой создается клон
stop — следует ли остановить только что созданный клон перед возвратом.
Возвращает:
уникальный идентификатор, который можно использовать для запуска, остановки, закрытия и настройки записи
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует
См. также:
  • Recording

startRecording

void startRecording(long recordingId) throws IllegalStateException
Запускает запись с указанным идентификатором.

Остановленную запись нельзя запустить повторно.

Параметры:
recordingId — идентификатор записи, которую нужно запустить
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует
IllegalStateException
См. также:
  • Recording

stopRecording

boolean stopRecording(long recordingId) throws IllegalArgumentException, IllegalStateException
Останавливает выполняющуюся запись с указанным идентификатором.
Параметры:
recordingId — идентификатор записи, которую нужно остановить
Возвращает:
true, если запись остановлена, в противном случае — false
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует
IllegalStateException — если запись не выполняется
См. также:
  • newRecording()

closeRecording

void closeRecording(long recordingId) throws IOException
Закрывает запись с указанным идентификатором и освобождает все системные ресурсы, связанные с ней.

Если запись уже закрыта, вызов этого метода не имеет эффекта.

Параметры:
recordingId — идентификатор записи, которую нужно закрыть
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует
IOException — если возникает ошибка ввода-вывода
См. также:
  • newRecording()

openStream

long openStream(long recordingId, Map<String,String> streamOptions) throws IOException
Открывает поток данных для записи с указанным идентификатором или 0, чтобы получать данные независимо от записи.
Параметры потока записи
Имя Описание Значение по умолчанию Формат Примеры значений
startTime Задает момент времени, с которого начинается поток записи. Из-за способа хранения данных могут быть включены некоторые события, начавшиеся или завершившиеся до указанного времени начала. Instant.MIN_VALUE.toString() ISO-8601. См. Instant.toString()
или количество миллисекунд с начала эпохи
"2015-11-03T00:00",
"1446508800000"
endTime Задает момент времени, в который заканчивается поток записи. Из-за способа хранения данных могут быть включены некоторые события, начавшиеся или завершившиеся после указанного времени окончания. Instant.MAX_VALUE.toString() ISO-8601. См. Instant.toString()
или количество миллисекунд с начала эпохи
"2015-11-03T01:00",
"1446512400000"
blockSize Задает максимальное количество байтов для чтения одним вызовом readStream "50000" Положительное значение long.

Слишком большое значение blockSize может привести к OutOfMemoryError или IllegalArgumentException, если виртуальная машина Java (JVM) сочтет это значение слишком большим для обработки.
"50000",
"1000000",
streamVersion Задает формат для чтения данных из выполняющейся записи "1.0" Номер версии, состоящий из основной и дополнительной частей.

Для чтения данных из выполняющейся записи необходимо задать это значение
"1.0"
Если параметр отсутствует в карте, используется значение по умолчанию.

Запись с указанным идентификатором должна быть остановлена до открытия потока, если не указан параметр "streamVersion".

Параметры:
recordingId — идентификатор записи, для которой нужно открыть поток
streamOptions — карта, содержащая параметры, управляющие объемом данных и способом их чтения, или null, чтобы получить все данные записи с размером блока по умолчанию
Возвращает:
уникальный идентификатор потока.
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует или options содержит недопустимые значения
IOException — если запись закрыта, возникает ошибка ввода-вывода или для указанной записи либо интервала нет данных

closeStream

void closeStream(long streamId) throws IOException
Закрывает поток записи с указанным идентификатором и освобождает все системные ресурсы, связанные с потоком.

Если поток уже закрыт, вызов этого метода не имеет эффекта.

Параметры:
streamId — идентификатор потока
Вызывает исключение:
IllegalArgumentException — если поток с указанным идентификатором не существует
IOException — если при попытке закрыть поток возникает ошибка ввода-вывода
См. также:
  • openStream(long, Map)

readStream

byte[] readStream(long streamId) throws IOException
Считывает часть данных из потока с указанным идентификатором или возвращает null, если данные закончились.

Чтобы прочитать все данные записи, вызывайте этот метод повторно, пока он не вернет null.

Параметры:
streamId — идентификатор потока
Возвращает:
массив байтов, содержащий данные записи, или null, если данные закончились
Вызывает исключение:
IOException — если поток закрыт или при попытке чтения потока произошла ошибка ввода-вывода
IllegalArgumentException — если записи с таким идентификатором потока не существует

getRecordingOptions

Map<String,String> getRecordingOptions(long recordingId) throws IllegalArgumentException
Возвращает карту, содержащую параметры записи с указанным идентификатором (например, файл назначения или временной интервал хранения записанных данных).

Список доступных имен параметров см. в FlightRecorderMXBean.

Параметры:
recordingId — идентификатор записи, параметры которой нужно получить
Возвращает:
карта с описанием параметров записи, не null
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует

getRecordingSettings

Map<String,String> getRecordingSettings(long recordingId) throws IllegalArgumentException
Возвращает Map, содержащий настройки записи с указанным идентификатором (например, пороговые значения событий).

Если одновременно выполняется несколько записей, может быть записано больше данных, чем указано в объекте Map.

Имя в Map — это имя события и имя настройки, разделенные "#" (например, "jdk.VMInfo#period"). Значение представляет собой текстовое представление значения настройки (например, "60 s").

Параметры:
recordingId — идентификатор записи, настройки которой нужно получить
Возвращает:
карта с описанием настроек записи, не null
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует

setConfiguration

void setConfiguration(long recordingId, String contents) throws IllegalArgumentException
Задает конфигурацию для записи с указанным идентификатором в виде строкового представления.
Параметры:
recordingId — идентификатор записи
contents — строковое представление используемого файла конфигурации, не null
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует или конфигурацию не удалось разобрать.
См. также:
  • Configuration.getContents()

setPredefinedConfiguration

void setPredefinedConfiguration(long recordingId, String configurationName) throws IllegalArgumentException
Задает предварительно определенную конфигурацию для записи с указанным идентификатором.
Параметры:
recordingId — идентификатор записи, для которой нужно задать конфигурацию
configurationName — имя конфигурации (например, "profile" или "default"), не null
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует
См. также:
  • getConfigurations()

setRecordingSettings

void setRecordingSettings(long recordingId, Map<String,String> settings) throws IllegalArgumentException
Задает и заменяет все предыдущие настройки для указанной записи.

Настройка состоит из пары «имя/значение», где имя задает событие и настраиваемый параметр, а значение указывает, какое значение ему присвоить.

Имя можно сформировать следующими способами:

<event-name> + "#" + <setting-name>

или

<event-id> + "#" + <setting-name>

Например, чтобы задать для события загрузки ЦП интервал выборки раз в секунду, используйте имя "jdk.CPULoad#period" и значение "1 s". Если несколько событий используют одно и то же имя (например, если класс события загружен несколькими загрузчиками классов) и их нужно различать, используется имя "56#period". Идентификатор события получается вызовом метода EventType.getId() и действителен для экземпляра виртуальной машины Java (JVM), в котором зарегистрировано событие.

Список доступных имен событий можно получить, вызвав FlightRecorder.getEventTypes() и EventType.getName(). Список доступных настроек для типа события можно получить, вызвав EventType.getSettingDescriptors() и ValueDescriptor.getName().

Параметры:
recordingId — идентификатор записи
settings — карта имен и значений задаваемых настроек, не null
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует
См. также:
  • Recording.getId()

setRecordingOptions

void setRecordingOptions(long recordingId, Map<String,String> options) throws IllegalArgumentException
Настраивает параметры записи (например, файл назначения и временной интервал хранения данных).

Описание доступных параметров и значений см. в FlightRecorderMXBean. Присвоение значения null восстанавливает значение по умолчанию.

Параметры:
recordingId — идентификатор записи, параметры которой нужно задать
options — карта имен и значений задаваемых параметров, не null
Вызывает исключение:
IllegalArgumentException — если запись с указанным идентификатором не существует
См. также:
  • Recording.getId()

getRecordings

List<RecordingInfo> getRecordings()
Возвращает список доступных записей, которые не обязательно выполняются.

Доступ к MBeanServer:
Сопоставленный тип RecordingInfo — это CompositeData с атрибутами, указанными в методе RecordingInfo.from.

Возвращает:
список записей, не null
См. также:
  • RecordingInfo
  • Recording

getConfigurations

List<ConfigurationInfo> getConfigurations()
Возвращает список предварительно определенных конфигураций для этой виртуальной машины Java (JVM).

Доступ к MBeanServer:
Сопоставленный тип ConfigurationInfo — это CompositeData с атрибутами, указанными в методе ConfigurationInfo.from.

Возвращает:
список предварительно определенных конфигураций, не null
См. также:
  • ConfigurationInfo
  • Configuration

getEventTypes

List<EventTypeInfo> getEventTypes()
Возвращает список зарегистрированных в данный момент типов событий.

Доступ к MBeanServer:
Сопоставленный тип EventTypeInfo — это CompositeData с атрибутами, указанными в методе EventTypeInfo.from.

Возвращает:
список зарегистрированных типов событий, не null
См. также:
  • EventTypeInfo
  • EventType

copyTo

void copyTo(long recordingId, String outputFile) throws IOException
Записывает данные записи в указанный файл.

Если этот метод вызывается удаленно из другого процесса, данные записываются в файл с именем outputFile на компьютере, где выполняется целевая виртуальная машина Java (JVM). Если путь к файлу относительный, он задается относительно рабочего каталога, из которого была запущена целевая JVM.

Параметры:
recordingId — идентификатор записи, данные которой нужно выгрузить
outputFile — зависящее от системы имя файла, в который записываются данные, не null
Вызывает исключение:
IOException — если запись не удается выгрузить из-за ошибки ввода-вывода (например, из-за недопустимого пути)
IllegalArgumentException — если запись с указанным идентификатором не существует
IllegalStateException — если запись еще не запущена или уже закрыта
См. также:
  • Path.toString()
  • Recording.dump(java.nio.file.Path)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.management.jfr/jdk/management/jfr/FlightRecorderMXBean.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API