- すべての実装されたインタフェース:
AutoCloseable
,EventStream
public final class RecordingStream extends Object implements AutoCloseable, EventStream
次の例では、デフォルトの構成を使用してイベントを記録し、ガベージ・コレクション、CPUロードおよびJVM情報イベントを標準出力に出力する方法を示します。
Configuration c = Configuration.getConfiguration("default");
try (var rs = new RecordingStream(c)) {
rs.onEvent("jdk.GarbageCollection", System.out::println);
rs.onEvent("jdk.CPULoad", System.out::println);
rs.onEvent("jdk.JVMInformation", System.out::println);
rs.start();
}
}
- 導入されたバージョン:
- 14
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 RecordingStream()
現在のJVM (Java Virtual Machine)のイベント・ストリームを作成します。RecordingStream(Configuration configuration)
構成の設定を使用してレコーディング・ストリームを作成します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 EventSettings
disable(Class<? extends Event> eventClass)
イベントを無効にします。EventSettings
disable(String name)
指定された名前のイベントを無効にします。EventSettings
enable(Class<? extends Event> eventClass)
イベントを有効にします。EventSettings
enable(String name)
指定された名前のイベントを有効にします。void
setMaxAge(Duration maxAge)
ストリームで保持される過去のデータの量を決定します。void
setMaxSize(long maxSize)
ストリーム用に保持されるデータ量を決定します。void
setSettings(Map<String,String> settings)
このレコーディング・ストリームのすべての設定を置換します。クラス java.lang.Objectで宣言されたメソッド
clone、equals、finalize、getClass、hashCode、notify、notifyAll、toString、wait、wait、wait
インタフェースjdk.jfr.consumer.EventStreamで宣言されたメソッド
awaitTermination, awaitTermination, close, onClose, onError, onEvent, onEvent, onFlush, remove, setEndTime, setOrdered, setReuse, setStartTime, start, startAsync
-
コンストラクタの詳細
-
RecordingStream
public RecordingStream()現在のJVM (Java Virtual Machine)のイベント・ストリームを作成します。- 例外:
IllegalStateException
- flight Recorderを(たとえば、Java Virtual Machine (JVM)にFlight Recorderのサポートがない場合や、ファイル・リポジトリを作成したり、アクセスできない場合などです。)の作成できないかSecurityException
- セキュリティ・マネージャが存在し、呼び出し元にFlightRecorderPermission("accessFlightRecorder")
がない場合
-
RecordingStream
public RecordingStream(Configuration configuration)構成の設定を使用してレコーディング・ストリームを作成します。次の例では、事前定義された構成を使用するレコーディング・ストリームの作成方法を示します。
var c = Configuration.getConfiguration("default"); try (var rs = new RecordingStream(c)) { rs.onEvent(System.out::println); rs.start(); }
- パラメータ:
configuration
-null
ではなく、使用する設定が含まれている構成- 例外:
IllegalStateException
- flight Recorderを(たとえば、Java Virtual Machine (JVM)にFlight Recorderのサポートがない場合や、ファイル・リポジトリを作成したり、アクセスできない場合などです。)の作成できないかSecurityException
- セキュリティ・マネージャが使用され、FlightRecorderPermission "accessFlightRecorder"が設定されていない場合。- 関連項目:
Configuration
-
-
メソッドの詳細
-
enable
public EventSettings enable(String name)指定された名前のイベントを有効にします。複数のイベントの名前が(たとえば、同じクラスが別のクラス・ローダーにロードされたとします。)である場合、名前と一致するすべてのイベントが有効になります。 特定のクラスを有効にするには、イベント・タイプIDの
enable(Class)
メソッドまたはString
表現を使用します。- パラメータ:
name
-null
ではなく、イベントの設定- 戻り値:
null
ではなく、さらなる構成のためのイベント設定- 関連項目:
EventType
-
setSettings
このレコーディング・ストリームのすべての設定を置換します。次の例では、"default"構成を使用して20秒記録し、その設定を"profile"構成に変更します。
Configuration defaultConfiguration = Configuration.getConfiguration("default"); Configuration profileConfiguration = Configuration.getConfiguration("profile"); try (var rs = new RecordingStream(defaultConfiguration) { rs.onEvent(System.out::println); rs.startAsync(); Thread.sleep(20_000); rs.setSettings(profileConfiguration.getSettings()); Thread.sleep(20_000); }
- パラメータ:
settings
-null
ではなく、設定する設定- 関連項目:
Recording.setSettings(Map)
-
enable
public EventSettings enable(Class<? extends Event> eventClass)イベントを有効にします。- パラメータ:
eventClass
-null
ではなく、有効にするイベント- 戻り値:
null
ではなく、さらなる構成のためのイベント設定- 例外:
IllegalArgumentException
-eventClass
が抽象クラスであるか、Event
のサブクラスでない場合
-
disable
public EventSettings disable(String name)指定された名前のイベントを無効にします。(たとえば、同じクラスが別のクラス・ローダーにロードされたとします。)と同じ名前のイベントが複数ある場合、名前と一致するすべてのイベントが無効化されます。 特定のクラスを無効にするには、イベント・タイプIDの
disable(Class)
メソッドまたはString
表現を使用します。- パラメータ:
name
-null
ではなく、イベントの設定- 戻り値:
null
ではなく、さらなる構成のためのイベント設定
-
disable
public EventSettings disable(Class<? extends Event> eventClass)イベントを無効にします。- パラメータ:
eventClass
-null
ではなく、有効にするイベント- 戻り値:
null
ではなく、さらなる構成のためのイベント設定- 例外:
IllegalArgumentException
-eventClass
が抽象クラスであるか、Event
のサブクラスでない場合
-
setMaxAge
public void setMaxAge(Duration maxAge)ストリームで保持される過去のデータの量を決定します。ディスクに格納されるデータのレコーディング量を制御するために、データを保持する最大時間を指定できます。 指定した時間よりも古いディスクに格納されているデータは、Java Virtual Machine (JVM)によって削除されます。
最大制限または最大保持時間をどちらも設定しない場合、イベントが発生したときに、レコーディングのサイズが無期限に大きくなる可能性があります
- パラメータ:
maxAge
- データが保持される時間の長さ(無限大の場合はnull
)。- 例外:
IllegalArgumentException
-maxAge
が負の場合IllegalStateException
- レコーディングがCLOSED
状態にあるかどうか
-
setMaxSize
public void setMaxSize(long maxSize)ストリーム用に保持されるデータ量を決定します。ディスクに格納されるデータのレコーディング量を制御するために、保持するデータの最大量を指定できます。 上限を超えた場合、Java Virtual Machine (JVM)は最も古いチャンクを削除し、新しいチャンクのための余裕を作成します。
最大限度または最大経過時間を設定しないと、レコーディングのサイズが無期限に拡大することがあります。
サイズはバイト単位で測定されます。
- パラメータ:
maxSize
- 保存するデータの量(無限大の場合は0
)- 例外:
IllegalArgumentException
-maxSize
が負の場合IllegalStateException
- レコーディングがCLOSED
状態にある場合
-