Red Hat で Java Platform Advocate として OpenJDK を担当している伊藤ちひろ(@chiroito)です。
この記事は、Red Hat Developerのブログ記事、How to organize JFR data with recording labels in Cryostat 2.1 | Red Hat Developer の翻訳記事です。
Cryostat 2.1の技術プレビューリリースでは、コンテナで管理されたJavaアプリケーションを監視するJDKフライトレコーディングにメタデータやカスタムラベルを添付し、Cryostatを使ってそれらの記録を管理できます。記録のラベルは、クエリで記録を識別し、同じラベルを含む複数の記録に対して操作を実行できます。この記事では、自動化されたルールで管理されている記録を含む、JDKフライトレコーディングのメタデータラベルを追加および編集する方法を説明します。
JDKフライトレコーディングに記録ラベルを追加
CryostatコンソールのRecordingsタブに移動し、ドロップダウンメニューからターゲットJVMを選択します。Createをクリックして、カスタムフライトレコーディングを作成します(図 1)。フライトレコーディングを作成する際、Show metadata options 欄を展開します。Add Labelをクリックして、キーと値のラベルの組み合わせを記録に追加します。記録の作成に関する詳細については、Cryostatガイドを参照してください。
図1:カスタムフライトのレコーディングは、カスタムラベルで追跡可能
新しい記録は、図 2 に示すように、選択した記録テンプレートに関する情報を含むデフォルトのラベルとともに、カスタムラベルを使用してRecordingsタブに表示されます。
図2:「稼働中の記録」の表には、各記録のラベルが表示
JDKフライトレコーディングの記録ラベルの編集
記録ラベルは、記録が作成された後やアーカイブに再アップロードされた後にも編集できます。例えば、この例のカスタムラベルにはタイプミスが含まれているように見えます。みなさんはラベルを編集して修正できます。
記録表のエントリの横にある省略記号メニューをクリックし、Edit Metadata(メタデータの編集)をクリックします。ラベル欄がフォーム形式で表示され、既存のラベルを追加、編集、または削除できます。図3に示すように、Save(保存)をクリックして編集したラベルを保存します。
図3:ラベルの値が編集された状態
図 4 に示すように、Active Recordings(稼働中の記録) 表の記録ラベルが更新されているはずです。
図4:更新されたラベルが表示されたActive Recordings(稼働中の記録)表
Active Recordings(稼働中の記録) 表で、記録の横にあるチェックボックスをクリックし、Archive(保管)をクリックして記録を保管します。
図 5 に示すように、保管された記録は、稼動中の記録からラベルをコピーします。つまり、稼働中の記録に適用されたメタデータ・ラベルを検索することで、稼働中の記録に関連する保管された記録を簡単に見つけられます。また、Cryostatの書庫にアップロードされた記録には、さらにラベルを追加できます。ラベルは、記録が保管されている限り保存されます。
図5:Archived Recordings(保管された記録)タブでは、各記録にラベルも表示
自動化されたルールで作成されたラベル付き記録
Cryostat 2.1の新UIでJFRの自動化ルールを構築する方法 - 赤帽エンジニアブログの記事で紹介した自動化ルールは、複数のJDKフライトレコーディングの追跡と管理を簡素化します。自動化ルールは、その記録を作成した自動化ルールの名称を示すメタデータラベルを自動的に適用します。たとえば、自動化ルールの名前がmy_automated_rule
であった場合、そのルールで生成されたすべての記録には、Rule: my_automated_rule
というメタデータ・ラベルが付きます。これらの記録が保管されるとき、ラベルは保存され、my_automated_rule
によって生成されたすべての記録を簡単に見つけられます。
まとめ
この記事では、単一のJDKフライトレコーディング、または自動化されたルールで管理されている場合は複数の記録に対して、記録のメタデータラベルを追加および編集する方法について説明しました。自動化されたルールは、作成した各記録にメタデータラベルを適用させます。
これらのラベルを使った録画の検索や操作については、このシリーズの別の記事「Manage JFR across instances with Cryostat and GraphQL | Red Hat Developer(英語)」をご覧ください。Cryostatの詳細については、プロジェクトの入門ページ(英語)をご覧ください。ご質問、コメント、フィードバックは、GitHubで私たちとつながるか、私たちのメーリングリストに参加すること自由に感じてください。