モジュール jdk.jfr
パッケージ jdk.jfr.consumer

クラスRecordingStream

java.lang.Object
jdk.jfr.consumer.RecordingStream
すべての実装されたインタフェース:
AutoCloseable, EventStream

public final class RecordingStream
extends Object
implements AutoCloseable, EventStream
レコーディング・ストリームは、現在のJVM (Java Virtual Machine)からイベントを生成します。

次の例では、デフォルトの構成を使用してイベントを記録し、ガベージ・コレクション、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

      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

      public void setSettings​(Map<String,​String> settings)
      このレコーディング・ストリームのすべての設定を置換します。

      次の例では、"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状態にある場合