1.4. 自動化ルールのカスタマイズ
Cryostat インスタンスのカスタムリソース (CR) 内の automatedRules プロパティーを設定して、複数のカスタム自動化ルールを含めることができます。自動化ルール定義には、matchExpression 文字列式で定義された正規表現に一致するターゲット JVM にルールを適用するために Cryostat が使用する多数のオプションを含めることができます。自動化ルールを使用すると、アプリケーションを再起動したり再デプロイしたりすることなく、JFR が実行中のターゲットアプリケーションを継続的に監視できるようになります。
デフォルトでは、Cryostat は事前設定された continuous_analysis、hibernate、および quarkus の自動化ルールを提供します。これらの事前設定されたルールがお客様のニーズを満たさない場合があります。そのため、カスタムの自動化ルールを作成し、それらのルール定義を ConfigMap に保存することで、より簡単に取得できるようになります。
カスタム自動化ルールを ConfigMap に保存した後、Cryostat Operator を使用して、指定された ConfigMap でこの自動化ルールを使用するように Cryostat インスタンスを設定できます。その後、JFR でカスタム自動化ルールを使用して、ニーズに合わせて Java アプリケーションを継続的に監視できます。
前提条件
- Red Hat OpenShift Web コンソールを使用して OpenShift Container Platform にログインしている。
- Cryostat Web コンソールにログインしている。
手順
デフォルトの自動化ルールをダウンロードするには、Cryostat Web コンソールに移動し、Flight Recorder > Capture > Automated Rules を選択します。次に、ダウンロードするルールの横にあるオーバーフローアイコンをクリックし、Download をクリックします。
注記自動化ルールは JSON 形式であり、ファイル名拡張子は
.jsonです。カスタム自動化ルールを作成するには、テキストエディターを使用してダウンロードした自動化ルールファイルを編集し、ニーズに合わせてルール定義を設定します。
たとえば、デフォルトの
continuous_analysis.json自動化ルールファイルには、次の詳細が含まれています。{"name":"continuous_analysis","description":"","matchExpression":"true","eventSpecifier":"template=Continuous,type=TARGET","archivalPeriodSeconds":300,"initialDelaySeconds":0,"preservedArchives":1,"maxAgeSeconds":600,"maxSizeBytes":0,"metadata":{"labels":[{"key":"origin","value":"automated-analysis"},{"key":"autoanalyze","value":"true"}]},"enabled":false}-
CLI で
oc loginコマンドを入力して、Red Hat OpenShift Web コンソールにログインします。 CLI で次のコマンドを入力して、自動化ルールから
ConfigMapリソースを作成します。Cryostat アプリケーションをデプロイするパスでコマンドを実行する必要があります。このリソースを使用して、Cryostat インスタンスを実行するクラスター内にある自動化ルールファイルを保存できます。CLI を使用して自動化ルールの ConfigMap リソースを作成する例
$ oc create configmap <automated_rule_name> --from-file=<path_to_custom_automated_rule>Cryostat インスタンスの作成を開始する場合は、次の手順を実行します。
- Red Hat OpenShift Web コンソールで、Operators > Installed Operators の順にクリックします。
- 使用可能な Operator のリストから、Red Hat build of Cryostat を選択します。
- Operator details ページで、Details タブをクリックします。
- Provided APIs セクションで Cryostat を選択し、Create instance をクリックします。
Create Cryostat パネルで、JSON 形式の自動化ルールをリソースにアップロードするには、次のいずれかのオプションを選択します。
Form ビューを使用する場合は、以下を実行します。
- Form view ラジオボタンをクリックします。
- Cryostat インスタンスの Automated Rules セクションに移動します。
- Automated Rules メニューから、Add Automated Rules をクリックします。Red Hat OpenShift コンソールで Automated Rules セクションが開きます。
Config Map Name ドロップダウンリストから、自動化ルールが含まれている ConfigMap リソースを選択します。
図1.5 Cryostat インスタンスの Automated Rules オプション
-
Filename フィールドに、ConfigMap に含まれている
.jsonファイルの名前を入力します。
YAML ビューを使用する場合は、以下を実行します。
- YAML view のラジオボタンをクリックします。
automatedRulesプロパティーにカスタム自動化ルールを指定します。これは、Cryostat Operator が ConfigMap を指し示すようにするプロパティーで、これにより、Operator は自動化ルールを読み取ることができます。automatedRulesプロパティーにカスタム自動化ルールを指定する例-- apiVersion: operator.cryostat.io/v1beta2 kind: Cryostat metadata: name: cryostat-sample spec: ... automatedRules: - configMapName: custom-rule1 filename: my-rule1.json - configMapName: custom-rule2 filename: my-rule2.json --重要configMapNameドロップダウンリストから、Cryostat または Cluster Cryostat インスタンスに関連付けられている ConfigMap の名前を選択する必要があります。さらに、filenameフィールドに ConfigMap に関連付けられたキーを指定する必要があります。
- この Cryostat インスタンスのカスタムリソース (CR) で他のプロパティーを設定する場合は、これらのプロパティーの詳細は、このドキュメントの他のセクションを参照してください。
- この Cryostat インスタンスの作成を終了する場合は、Create をクリックします。
Create をクリックすると、この Cryostat インスタンスは Operator details ページの Cryostat タブで利用できます。その後、Operator details ページでインスタンス名をクリックし、Actions ドロップダウンメニューから Edit Cryostat を選択すると、Cryostat インスタンスの CR プロパティーを編集できます。
Cryostat Operator は、カスタム自動化ルールを JSON ファイルとして Cryostat アプリケーションに提供できるようになりました。Cryostat Web コンソールで、カスタム自動化ルールがデフォルトの自動化ルールと一緒に開きます。
検証
- Cryostat Web コンソールで、ナビゲーションメニューから Flight Recorder > Capture > Automated Rules を選択します。
- Automated Rules パネルで、利用可能な自動化ルールのリストにカスタム自動化ルールが表示されているか確認します。