Spec-Zone.ru › OpenJDK 17

Интерфейс 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 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"
Since:
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()
Создаёт моментальную запись (snapshot) всех доступных записанных данных.

Моментальная запись — это синтезированная запись в состоянии остановки. Если данные недоступны, возвращается запись размером 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 (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 (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 (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, 2021, 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/17/docs/api/jdk.management.jfr/jdk/management/jfr/FlightRecorderMXBean.html

Spec-Zone.ru

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