Spec-Zone.ru › OpenJDK 21

Интерфейс FlightRecorderMXBean

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

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

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

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

getObjectName

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

MXBEAN_NAME

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

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

newRecording

long newRecording() throws IllegalStateException, SecurityException
Создаёт запись, но не запускает её.
Возвращает:
уникальный идентификатор, который может быть использован для запуска, остановки, закрытия и конфигурирования записи
Исключение:
IllegalStateException - если Flight Recorder не может быть создан (например, если в Java Virtual Machine (JVM) отсутствует поддержка Flight Recorder, или если репозиторий файлов не может быть создан или доступен)
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет ManagementPermission("control")
См. также:
  • Recording

takeSnapshot

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

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

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

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

Возвращает:
уникальный идентификатор, который может быть использован для чтения данных записи
Исключение:
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет ManagementPermission("control")
См. также:
  • Recording

cloneRecording

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

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

Параметры:
recordingId - идентификатор записи, для которой создать копию
stop - если новая скопированная запись останавливается перед возвратом.
Возвращает:
уникальный идентификатор, который может быть использован для запуска, остановки, закрытия и конфигурирования записи
Исключение:
IllegalArgumentException - если записи с указанным идентификатором не существует
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет ManagementPermission("control")
См. также:
  • Recording

startRecording

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

Остановленная запись не может быть перезапущена.

Параметры:
recordingId - идентификатор записи для запуска
Исключение:
IllegalArgumentException - если записи с указанным идентификатором не существует
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет ManagementPermission("control")
IllegalStateException
См. также:
  • Recording

stopRecording

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

closeRecording

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

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

Параметры:
recordingId - идентификатор записи для закрытия
Исключение:
IllegalArgumentException - если записи с указанным идентификатором не существует
IOException - если произошла ошибка ввода-вывода
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет ManagementPermission("control")
См. также:
  • 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 Virtual Machine (JVM) посчитает значение слишком большим для обработки.
"50000",
"1000000",
streamVersion Указывает формат для использования при чтении данных из запущенной записи "1.0" Номер версии с основной и дополнительной частью.

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

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

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

closeStream

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

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

Параметры:
streamId - идентификатор потока
Исключение:
IllegalArgumentException - если поток с указанным идентификатором не существует
IOException - если при попытке закрытия потока произошла ошибка ввода-вывода
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет ManagementPermission("control")
См. также:
  • openStream(long, Map)

readStream

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

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

Параметры:
streamId - идентификатор потока
Возвращает:
массив байтов, содержащий данные записи, или null когда больше данных недоступно
Исключение:
IOException - если поток закрыт или при попытке чтения потока произошла ошибка ввода-вывода
IllegalArgumentException - если записи с идентификатором потока не существует
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет ManagementPermission("monitor")

getRecordingOptions

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

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

Parameters:
recordingId - идентификатор записи, для которой нужно получить параметры
Returns:
карта, описывающая параметры записи, не null
Throws:
IllegalArgumentException - если запись с указанным идентификатором не существует
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет ManagementPermission("monitor")

getRecordingSettings

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

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

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

Parameters:
recordingId - идентификатор записываемых событий, для которых требуется получить настройки
Returns:
карта, описывающая настройки записи, не null
Throws:
IllegalArgumentException - если запись с указанным идентификатором не существует
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет ManagementPermission("monitor")

setConfiguration

void setConfiguration(long recordingId, String contents) throws IllegalArgumentException
Устанавливает конфигурацию в виде строкового представления для записи с указанным идентификатором.
Parameters:
recordingId - идентификатор записи
contents - строковое представление конфигурационного файла для использования, не null
Throws:
IllegalArgumentException - если запись с указанным идентификатором не существует или конфигурация не может быть обработана.
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет ManagementPermission("control")
See Also:
  • Configuration.getContents()

setPredefinedConfiguration

void setPredefinedConfiguration(long recordingId, String configurationName) throws IllegalArgumentException
Устанавливает предопределённую конфигурацию для записи с указанным идентификатором.
Parameters:
recordingId - идентификатор записи, для которой нужно установить конфигурацию
configurationName - имя конфигурации (например, "profile" или "default"), не null
Throws:
IllegalArgumentException - если запись с указанным идентификатором не существует
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет ManagementPermission("control")
See Also:
  • getConfigurations()

setRecordingSettings

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

Настройка состоит из пары "имя/значение", где имя указывает событие и настройку для конфигурации, а значение указывает, на что её установить.

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

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

или

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

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

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

Parameters:
recordingId - идентификатор записи
settings - карта имя-значение настроек для установки, не null
Throws:
IllegalArgumentException - если запись с указанным идентификатором не существует
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет ManagementPermission("control")
See Also:
  • Recording.getId()

setRecordingOptions

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

См. FlightRecorderMXBean для описания параметров и значений, которые можно использовать. Установка значения в null восстанавливает значение до значения по умолчанию.

Parameters:
recordingId - идентификатор записи, для которой нужно установить параметры
options - карта имя/значение настроек для установки, не null
Throws:
IllegalArgumentException - если запись с указанным идентификатором не существует
SecurityException - если менеджер безопасности существует, и у вызывающего объекта нет ManagementPermission("control") или параметр содержит файл, на который у вызывающего объекта нет разрешения для работы.
See Also:
  • Recording.getId()

getRecordings

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

Доступ к MBeanServer:
Тип отображения RecordingInfo — CompositeData с атрибутами, как указано в методе RecordingInfo.from.

Returns:
список записей, не null
Throws:
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет ManagementPermission("monitor")
See Also:
  • RecordingInfo
  • Recording

getConfigurations

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

Доступ к MBeanServer:
Тип отображения ConfigurationInfo — CompositeData с атрибутами, как указано в методе ConfigurationInfo.from.

Returns:
список предопределённых конфигураций, не null
Throws:
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет ManagementPermission("monitor")
See Also:
  • ConfigurationInfo
  • Configuration

getEventTypes

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

Доступ к MBeanServer:
Тип отображения EventTypeInfo — CompositeData с атрибутами, как указано в методе EventTypeInfo.from.

Returns:
список зарегистрированных типов событий, не null
Throws:
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет ManagementPermission("monitor")
See Also:
  • EventTypeInfo
  • EventType

copyTo

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

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

Parameters:
recordingId - идентификатор записи, для которой требуется получить данные
outputFile - зависящее от системы имя файла, куда записываются данные, не null
Throws:
IOException - если запись не может быть скопирована из-за ошибки ввода-вывода (например, неверный путь)
IllegalArgumentException - если запись с указанным идентификатором не существует
IllegalStateException - если запись ещё не начата или уже закрыта
SecurityException - если менеджер безопасности существует и его метод SecurityManager.checkWrite(java.lang.String) запрещает запись в указанный файл или у вызывающего объекта нет ManagmentPermission("control")
See Also:
  • Path.toString()
  • Recording.dump(java.nio.file.Path)

© 1993, 2023, 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/21/docs/api/jdk.management.jfr/jdk/management/jfr/FlightRecorderMXBean.html

Spec-Zone.ru

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