Cryostat を使用した JFR レコーディングの作成


Red Hat build of Cryostat 2

Red Hat Customer Content Services

概要

Red Hat build of Cryostat を使用して、コンテナー化されたアプリケーションの Java 仮想マシン (JVM) のパフォーマンスを監視する JDK Flight Recorder (JFR) のレコーディングを作成します。また、実行中の JFR レコーディングのスナップショットを取得して、特定の時間枠のデータを表示する方法についても説明します。

はじめに

Red Hat build of Cryostat は、JDK Flight Recorder (JFR) のコンテナーネイティブ実装です。これを使用すると、OpenShift Container Platform クラスターで実行されるワークロードで Java 仮想マシン (JVM) のパフォーマンスを安全にモニターできます。Cryostat 2.4 を使用すると、Web コンソールまたは HTTP API を使用して、コンテナー化されたアプリケーション内の JVM の JFR データを起動、停止、取得、アーカイブ、インポート、およびエクスポートできます。

ユースケースに応じて、Cryostat が提供するビルトインツールを使用して、Red Hat OpenShift クラスターに直接レコーディングを保存して分析したり、外部のモニタリングアプリケーションにレコーディングをエクスポートして、レコーディングしたデータをより詳細に分析したりできます。

重要

Red Hat build of Cryostat は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 Cryostat の JFR 作成オプション

Cryostat を使用すると、コンテナー化されたアプリケーションで JVM のパフォーマンスを監視する JDK Flight Recorder (JFR) レコーディングを作成できます。さらに、アクティブな JFR レコーディングのスナップショットを作成して、ターゲット JVM アプリケーションの特定の時点までの収集データをキャプチャーできます。

Cryostat は、JFR レコーディングを作成する次のさまざまな方法をすべてサポートしています。

  • Cryostat Web コンソールを使用して、JMX またはエージェント HTTP 接続を使用しているターゲット JVM の JFR 記録を手動で作成できます。
  • Cryostat サーバーは、JMX またはエージェント HTTP 接続経由でオンデマンドリクエストを送信し、自動化されたルールに基づいて JFR レコーディングを動的に開始できます。
  • Cryostat エージェントは、エージェントハーベスター機能の一部として、指定されたイベントテンプレートに基づいて、エージェントの起動時に JFR 記録を自動的に開始できます。
  • Red Hat build of Cryostat 2.4 以降では、Cryostat エージェントは MBean カスタムトリガーと特定のイベントテンプレートに基づいて JFR レコーディングを動的に開始できます。

このドキュメントの残りの部分では、Cryostat Web コンソールで JFR レコーディングを手動で作成する方法について説明します。

第2章 Cryostat Web コンソールでの JFR レコーディングの作成

コンテナー化されたアプリケーション内にある JVM のパフォーマンスを監視する JFR レコーディングを作成できます。JFR レコーディングの作成後は、JFR を起動して、ヒープおよび非ヒープのメモリー使用量など、JVM のリアルタイムデータをキャプチャーできます。

前提条件

  • OperatorHub オプションを使用して、Cryostat 2.4 を Red Hat OpenShift にインストールしている。
  • Red Hat OpenShift プロジェクトに Cryostat インスタンスを作成した。
  • Cryostat Web コンソールにログインしている。

    • Red Hat OpenShift Web コンソールを使用して Cryostat アプリケーションの URL を取得できます。

手順

  1. Cryostat Web コンソールの Dashboard パネルで、Target リストからターゲット JVM を選択します。

    注記

    ターゲットアプリケーションの設定方法によっては、ターゲット JVM が JMX 接続またはエージェント HTTP 接続を使用している場合があります。ターゲットアプリケーションの設定の詳細は、Java アプリケーションの設定 を参照してください。

    重要

    ターゲット JVM がエージェント HTTP 接続を使用しており、ターゲットアプリケーションが Cryostat エージェントをロードするように設定した場合は、cryostat.agent.api.writes-enabled プロパティーを true に指定していることを確認してください。そうしないと、Cryostat エージェントは、JFR レコーディングの開始および停止のリクエストを受け入れることができません。

    図2.1 Cryostat インスタンスの Target JVM 選択例

    Cryostat インスタンスの *Target JVM* 選択例
  2. オプション: Dashboard パネルで、ターゲット JVM を作成できます。Target リストから Create Target をクリックします。Create Custom Target ウィンドウが開きます。

    1. Connection URL フィールドに、JVM の Java Management Extension (JMX) エンドポイントの URL を入力します。
    2. オプション: 指定した Connection URL が有効かどうかをテストするには、Click to test をクリックし、サンプルノードイメージをテストします。Connection URL に問題がある場合は、問題の説明とトラブルシューティングのガイダンスを示すエラーメッセージが表示されます。
    3. オプション: Alias フィールドに、JMX Service URL のエイリアスを入力します。
    4. Create をクリックします。

      図2.2 Create Custom Target ウィンドウ

      *Create Custom Target* ウィンドウ
  3. Cryostat Web コンソールのナビゲーションメニューから、Recordings をクリックします。
  4. オプション:ターゲット JVM の設定方法によっては、Web コンソールで Authentication Required ダイアログが開く場合があります。Authentication Required ダイアログボックスで Username および Password を入力します。Save をクリックして、認証情報をターゲット JVM に提供します。

    図2.3 Cryostat Authentication Required ウィンドウの例

    Cryostat Authentication Required ウィンドウの例
    注記

    選択したターゲット JMX で、JMX 接続に対して Secure Socket Layer (SSL) 証明書が有効になっている場合は、プロンプトが表示されたらその証明書を追加する必要があります。

    Cryostat は、ターゲット JVM アプリケーションのクレデンシャルを暗号化し、Red Hat OpenShift の永続ボリューム要求 (PVC) に格納されているデータベースに保存します。認証情報の保存および管理 (Cryostat を使用した JFR レコーディングの管理) を参照してください。

  5. Active Recordings タブで、Create をクリックします。

    図2.4 アクティブなレコーディングの作成例

    アクティブなレコーディングの作成例
  6. Custom Flight Recording タブで、以下を行います。

    1. Name フィールドに、作成するレコーディングの名前を入力します。無効な形式で名前を入力すると、Web コンソールにエラーメッセージが表示されます。
    2. Cryostat が既存のレコーディングを自動的に再起動するようにする場合は、Restart if recording already exists のチェックボックスを選択します。

      注記

      すでに存在する名前を入力し、Restart if recording already exists を選択しないと、Create ボタンをクリックしても Cryostat はカスタムレコーディングの作成を拒否します。

    3. Duration フィールドで、指定された期間後にこのレコーディングを停止するか、停止せずに継続的に実行するかを選択します。レコーディングの停止後に Cryostat が新しい JFR レコーディングを自動的にアーカイブするようにするには、Archive on Stop をクリックします。
    4. Template フィールドで、レコーディングに使用するテンプレートを選択します。

    次の例は、継続的な JVM モニタリングを示しています。これは、Continuous フィールドの上から Duration を選択することで有効にできます。この設定では、手動でレコーディングを停止するまでレコーディングが継続されます。また、この例では、Template フィールドで Profiling テンプレートが選択されています。これにより、トラブルシューティングを目的として、JFR レコーディングに追加の JVM 情報が提供されます。

    図2.5 カスタムフライトレコーディングの作成例

    カスタムフライトレコーディングの作成例
  7. その他のオプションにアクセスするには、次の展開可能なハイパーリンクをクリックします。

    • Show advanced options: JFR レコーディングをカスタマイズするための追加オプションを選択できます。
    • Show metadata options: カスタムラベルとメタデータを JFR レコーディングに追加できます。
  8. Create をクリックして、JFR レコーディングを作成します。Active Recordings タブが開き、JFR レコーディングがリスト表示されます。

    アクティブな JFR レコーディングが、コンテナー化されたアプリケーション内のターゲット JVM の場所でデータ収集を開始します。JFR レコーディングに固定期間を指定した場合、ターゲット JVM は設定された固定期間に達するとレコーディングを停止します。それ以外の場合は、手動でレコーディングを停止する必要があります。

  9. オプション: Active Recording タブで、レコーディングを停止することもできます。

    1. JFR レコーディングの名前の横にあるチェックボックスを選択します。Cryostat Web コンソールで、Active Recordings タブのツールバーにある Stop ボタンが有効になります。
    2. Stop をクリックします。JFR が STOPPED ステータスになり、ターゲット JVM のモニタリングが停止します。JFR はその後も Active Recording タブに表示されます。

      図2.6 アクティブなレコーディングの停止例

      アクティブなレコーディングの停止例
      重要

      以下の状況が発生すると、JFR レコーディングのデータが失われる可能性があります。

      • ターゲット JVM が失敗する
      • ターゲット JVM が再起動する
      • ターゲット JVM の Red Hat OpenShift デプロイメントがスケールダウンされる

      JFR レコーディングをアーカイブして、JFR レコーディングのデータが失われないようにします。

関連情報

第3章 アクティブなレコーディングからのスナップショット作成

アクティブな JFR レコーディングのスナップショットを作成して、ターゲット JVM アプリケーションの特定の時点までの収集データをキャプチャーできます。スナップショットは、実行中の JFR レコーディングの特定の時間セグメントの開始点と終了点を持つチェックポイントマーカーのようなものです。

スナップショットは、ターゲット JVM アプリケーションのメモリーに保存されます。これはアーカイブとは異なり、Cryostat はアーカイブをクラウドストレージディスクに保存します。アーカイブは、JFR レコーディングのデータを保存するためのより永続的なソリューションです。

アクティブな JFR レコーディング間でさまざまな設定変更を試す場合は、レコーディングのスナップショットを作成するとよいでしょう。

JFR レコーディングのスナップショットを作成すると、Cryostat は snapshot -<snapshot_number> という名前の新しいターゲット JVM を作成します。この場合、<snapshot_number> は Cryostat がスナップショットに自動的に割り当てる番号です。

ターゲット JVM はスナップショットをアクティブなレコーディングとして認識します。Cryostat は、JFR スナップショットを STOPPED 状態に設定します。これは、JFR スナップショットがターゲット JVM に新しいデータをレコーディングしないことを意味します。JFR 設定によっては、アクティブな JFR レコーディングは、作成されたスナップショットの数にかかわらず、ターゲット JVM の監視を継続できます。

注記

ターゲット JVM アプリケーションの継続的な監視用に設定した JFR レコーディングでは、JFR レコーディングデータの損失を回避するために、レコーディングのアーカイブを作成してください。

JFR レコーディングデータを保存するために通常のスナップショットを作成することを選択した場合、ターゲット JVM アプリケーションが、古いレコーディングデータを新しいレコーディングデータに置き換えて、データストレージ領域の一部を解放する場合があります。

前提条件

  • Cryostat インスタンスの認証情報を入力した。
  • ターゲット JVM レコーディングを作成し、認証情報を入力しており、Recordings メニューにアクセスできる。JDK Flight Recorder (JFR) レコーディングの作成 (Cryostat を使用した JFR レコーディングの作成) を参照してください。

手順

  1. Active Records タブで、Create ボタンをクリックします。Web コンソールに新しいウィンドウが開きます。

    図3.1 アクティブなレコーディングの作成例

    アクティブなレコーディングの作成例
  2. Snapshot Recording タブをクリックします。

    図3.2 スナップショットレコーディングの作成例

    スナップショットレコーディングの作成例
  3. Create をクリックします。Active Recordings タブが開き、JFR スナップショットのレコーディングが一覧表示されます。次の例は、snapshot-3 という名前の JFR スナップショットのレコーディングを示しています。

    図3.3 完成したスナップショットレコーディングの例

    完成したスナップショットレコーディングの例
    注記

    スナップショットは、アクティブなレコーディングのリストから snapshot の接頭辞で識別できます。

次のステップ

第4章 JFR レコーディングのラベル

Cryostat 2.4 で JDK Flight Recorder (JFR) レコーディングを作成する場合、一連のキーと値のラベルのペアを指定することで、記録にメタデータを追加できます。

さらに、ターゲット JVM 内にある JFR レコーディングにカスタムラベルを割り当てることができるため、JFR レコーディングを簡単に識別してより適切に管理できます。

一般的なレコーディングラベルの使用例を以下に示します。

  • JFR レコーディングにメタデータを割り当てる。
  • 同一のラベルを含むレコーディングに対してバッチ操作を実行する。
  • レコーディングに対してクエリーを実行するときにラベルを使用する。

Cryostat を使用すると、コンテナー化されたアプリケーションで JVM のパフォーマンスを監視する JFR レコーディングを作成できます。さらに、アクティブな JFR レコーディングのスナップショットを作成して、ターゲット JVM アプリケーションの特定の時点までの収集データをキャプチャーできます。

4.1. JFR レコーディングへのラベルの追加

Cryostat 2.4 で JFR レコーディングを作成する場合、ラベルを使用して、キーと値のラベルペアを含むメタデータをレコーディングに追加できます。

Cryostat は、作成された JFR レコーディングにデフォルトのレコーディングラベルを適用します。これらのデフォルトラベルは、Cryostat が JFR レコーディングの作成に使用したイベントテンプレートに関する情報を取得します。

カスタムラベルを JFR レコーディングに追加すると、特定の JFR レコーディングを識別したり、同じラベルが適用されたレコーディングでバッチ操作を実行したりするなど、ニーズを満たす特定のクエリーを実行できます。

前提条件

  • Cryostat Web コンソールにログインしている。
  • Cryostat インスタンスのターゲット JVM を作成または選択している。

手順

  1. Cryostat Web コンソールから、Recordings をクリックします。
  2. Active Recordings タブで、Create をクリックします。
  3. Custom Flight Recording タブで、Show metadata options を展開します。

    注記

    Custom Flight Recording タブでは、アスタリスクが付いている必須フィールドに入力する必要があります。

  4. Add label をクリックします。

    図4.1 Custom Flight Recording タブに表示される Add Label ボタン

    *Custom Flight Recording* タブに表示される *Add Label* ボタン
  5. 表示された Key フィールドと Value フィールドに値を入力します。たとえば、レコーディングに関する問題を報告する場合は、Key フィールドに理由を入力し、Value フィールドに問題の種類を入力できます。
  6. Create をクリックして、JFR レコーディングを作成します。レコーディングは、指定されたレコーディングラベルおよびカスタムラベルとともに Active Recordings タブに表示されます。

    ヒント

    Archives メニューから、アーカイブされた JFR レコーディングにアクセスできます。Cryostat アーカイブの場所への JFR レコーディングのアップロード (Cryostat を使用した JFR レコーディングの管理) を参照してください。

次の例は、2 つのデフォルトのレコーディングラベル template.name: Profiling および template.type: TARGET と、1 つのカスタムラベル reason:service-outage を示しています。

図4.2 定義済みのレコーディングラベルとカスタムラベルを使用したアクティブなレコーディングの例

定義済みのレコーディングラベルとカスタムラベルを使用したアクティブなレコーディングの例

4.2. JFR レコーディングのラベルの編集

Cryostat Web コンソールで、Recordings メニューに移動して、JFR レコーディングのラベルとそのメタデータを編集できます。アーカイブにアップロードした JFR レコーディングのラベルとメタデータを編集することもできます。

前提条件

  • Cryostat Web コンソールにログインしている。
  • JFR レコーディングを作成し、このレコーディングにラベルを添付する。

手順

  1. Cryostat Web コンソールで、Recording メニューをクリックします。
  2. Active Recordings タブから、JFR レコーディングを見つけて、その横にあるチェックボックスを選択します。
  3. Edit Labels をクリックします。Cryostat Web コンソールで Edit Recording Label ペインが開きます。このペインを使用して、JFR レコーディングのラベルを追加、編集、または削除できます。

    ヒント

    各レコーディングの横にあるチェックボックスを選択すると、複数の JFR レコーディングを選択できます。同じラベルを含むレコーディングを一括編集する場合、または複数のレコーディングに新しい同一のラベルを追加する場合は、Edit Labels ボタンをクリックします。

  4. オプション: Edit Recording Labels ウィンドウから、次のいずれかのアクションを実行できます。

    1. Add をクリックして、ラベルを作成します。
    2. ラベルの横にある X をクリックして、ラベルを削除します。
    3. フィールドの内容を変更して、ラベルを編集します。内容を編集すると、編集したことを示す緑色のチェックマークがフィールドに表示されます。
  5. Save をクリックします。
  6. オプション: 次の手順を実行して、JFR レコーディングをそのラベルとともにアーカイブできます。

    1. レコーディングの名前の横にあるチェックボックスを選択します。
    2. Archive ボタンをクリックします。レコーディングは Archived Recordings タブで見つけることができます。

      レコーディングをラベル付きでアーカイブすると、後でレコーディングを見つける場合に検索機能を強化できます。Cryostat アーカイブにアップロードした任意のレコーディングにラベルを追加することもできます。

      注記

      Cryostat は、アーカイブされたレコーディングの存続期間中、レコーディングのラベルを保持します。

検証

  • Active Recordings タブで、レコーディングの Labels セクションに変更内容が表示されていることを確認します。

改訂日時: 2024-01-02

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.