- すべての実装されたインタフェース:
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)構成の設定を使用してレコーディング・ストリームを作成します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 EventSettingsdisable(Class<? extends Event> eventClass)イベントを無効にします。EventSettingsdisable(String name)指定された名前のイベントを無効にします。EventSettingsenable(Class<? extends Event> eventClass)イベントを有効にします。EventSettingsenable(String name)指定された名前のイベントを有効にします。voidsetMaxAge(Duration maxAge)ストリームで保持される過去のデータの量を決定します。voidsetMaxSize(long maxSize)ストリーム用に保持されるデータ量を決定します。voidsetSettings(Map<String,String> settings)このレコーディング・ストリームのすべての設定を置換します。voidstartAsync()アクションの非同期処理を開始します。クラス 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
-
コンストラクタの詳細
-
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状態にある場合
-
startAsync
public void startAsync()アクションの非同期処理を開始します。アクションは、単一の独立したスレッドで実行されます。
ストリームを停止するには、
EventStream.close()メソッドを使用します。次の例では、CPU使用率を10秒間出力します。 現在のスレッドがtry-with-resourcesブロックから離れると、ストリームは停止/クローズされます。
try (var stream = new RecordingStream()) { stream.enable("jdk.CPULoad").withPeriod(Duration.ofSeconds(1)); stream.onEvent("jdk.CPULoad", event -> { System.out.println(event); }); stream.startAsync(); Thread.sleep(10_000); }- 定義:
- インタフェース
EventStream内のstartAsync - 例外:
IllegalStateException- ストリームがすでに開始されているか、閉じている場合
-