検索

第3章 JMC Agent プラグイン

download PDF

JMC Agent プラグインを使用して、JMC Agent 実装を Cryostat に追加できます。次に、JMC Agent を使用して、カスタム JFR イベントを実行中のターゲット JVM アプリケーションに追加できます。この操作では、JVM アプリケーションを再起動する必要はありません。

関連情報

3.1. JMC Agent プラグインを使用したカスタムイベントの追加

Cryostat を JMC Agent と組み合わせて使用すると、実行中の JVM アプリケーションで問題を診断する必要がある場合に詳細情報を提供できます。

JMC Agent JAR ファイルは、ターゲット JVM アプリケーションと同じ Red Hat OpenShift コンテナーに存在する必要があります。そうしないと、Cryostat はアプリケーションで JMC Agent 機能を使用することはできません。

Cryostat Web コンソールから、プローブテンプレートをアップロードしてから、これらのテンプレートを JVM アプリケーションに挿入することができます。これらのテンプレートプローブは、必要に応じて後で削除できます。プローブテンプレートは、Cryostat が処理できる一連のオブジェクトを記述し、Cryostat が JVM アプリケーションで一連の JMC Agent 操作を完了できるようにします。

JMC Agent でターゲット JVM アプリケーションを起動すると、Cryostat は、アプリケーションが JMC Agent で実行されているかどうかを自動的に検出します。

重要

RHEL の場合、JMC パッケージは CodeReady Linux Builder (CRB) (Builder とも呼ばれる) リポジトリーによって提供されます。RHEL に JMC をインストールできるように、RHEL で CRB リポジトリーを有効にする必要があります。CRB パッケージは製品化された RHEL パッケージとして Source Red Hat Package Manager (SRPM) でビルドされるため、CRB パッケージは定期的に更新を受け取ります。JDK Mission Control (JMC) のダウンロードおよびインストール (Red Hat build of Cryostat での JDK Flight Recorder の使用) を参照してください。

前提条件

  • jmc パッケージをダウンロードしてインストールしている。
  • Adoptium Agent JAR ファイルをダウンロードしている。adoptium/jmc-build (GitHub) を参照してください。
  • --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED フラグを使用して、Java アプリケーションを起動している。./<your_application> --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED はその例です。
  • Java アプリケーションの JMC Agent を起動している。JDK Mission Control (JMC) エージェントの開始 (Red Hat build of Cryostat での JDK Flight Recorder の使用) を参照してください。

手順

  1. Cryostat Web コンソールから、Events メニューに移動します。JMC Agent が Cryostat インスタンスに正常に追加された場合は、Event Templates ペインの下に Probe Templates ペインが開きます。

    図3.1 Cryostat Web コンソールのプローブテンプレートタブ

    Cryostat Web コンソールの *Probe Templates* タブ
    注記

    Web コンソールで Authentication Required ダイアログボックスが開く場合があります。プロンプトが表示されたら、Authentication Required ダイアログボックスに UsernamePassword を入力し、Save をクリックして、JMX 認証情報をターゲット JVM に提供します。

  2. 希望するテキストエディターを使用して XML 設定ファイルを作成します。Cryostat がアプリケーションで実行するイベントなどの JFR イベント情報でファイルを設定します。

    以下の例は、JFR イベント情報を含むカスタムプローブテンプレート XML ファイルを示しています。このファイルを Cryostat にアップロードすると、Cryostat は Cryostat Agent Plugin Demo Event と呼ばれるカスタム JFR イベントをアプリケーションに追加できます。Cryostat は、JMC Agent の retrieveEventProbes メソッドが呼び出されると JFR イベントを開始します。

    <jfragent>
        <!-- Global configuration options -->
        <config>
       	 <classprefix>__JFREvent</classprefix>
       	 <allowtostring>true</allowtostring>\
       	 <allowconverter>true</allowconverter>
        </config>
       	 <events>
       		 <event id="cryostat.demo.jfr.event9">
           		 <label>Cryostat Agent Plugin Demo Event</label>
           		 <description>Event for the agent plugin demo</description>
           		 <path>io/cryostat/demo/events</path>
           		 <stacktrace>true</stacktrace>
           		 <class>io.cryostat.core.agent.AgentJMXHelper</class>
           		 <method>
               		 <name>retrieveEventProbes</name>
       		 <descriptor>()Ljava/lang/String;</descriptor>
           		 </method>
            	<location>WRAP</location>
        	</event>
    	</events>
    </jfragent>
  3. Upload ボタンをクリックして、カスタムイベントテンプレートを Cryostat に追加します。Cryostat Web コンソールで Create Custom Probe Template が開きます。

    図3.2 Cryostat Web コンソールの Create Custom Probe Template ウィンドウ

    Cryostat Web コンソールの *カスタムプローブテンプレートの作成* ウィンドウ
    ヒント

    アップロードしたファイルをこの Template XML フィールドから削除する場合は、Clear ボタンをクリックします。

  4. Browse ボタンをクリックして XML ファイルを見つけます。
  5. ファイルをアップロードしたら、Submit をクリックします。カスタムプローブテンプレートファイルが Probe Templates テーブルで開きます。
  6. プローブテンプレートの横にあるオーバーフローメニューをクリックします。
  7. Insert Probes をクリックします。プローブは Probe Templates タブの下に表示され、Live Configuration タブの下のテーブルに表示されます。
  8. オプション: Live Configuration タブに移動し、アクティブなプローブごとに、NameClass などの情報を表示できます。
  9. オプション: Live Configuration タブから、Remove All Probes をクリックして、表に記載されているプローブを削除できます。

検証

  1. Events メニューから、Event Types タブをクリックします。
  2. XML 設定の名前付き JFR イベントがテーブルに一覧表示されていることを確認します。この手順で使用されている例では、Cryostat Agent Plugin Demo Event が表に表示されます。

関連情報

改訂日時: 2024-01-02

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.