第2章 動的レコーディングのカスタムトリガーの設定
Cryostat エージェントをロードするようにターゲットアプリケーションを設定する場合に、エージェントに引数として渡される 1 つ以上のカスタムトリガーを定義できます。
Cryostat エージェントをロードするようにターゲットアプリケーションを設定する方法は、Java アプリケーションの設定 を参照してください。
Cryostat Operator を使用してエージェントを自動的に設定する場合でも、カスタムトリガーを定義するためのオプション で説明されているように、アプリケーションデプロイメントでカスタムトリガーを手動で引き続き定義する必要があります。この状況では、OpenShift Container Platform は、再設定されたアプリケーションデプロイメントに関連付けられているすべての Pod を必要に応じて自動的に再デプロイします。
2.1. カスタムトリガーを定義するオプション
カスタムトリガーは以下のいずれかの方法で定義できます。
- Cryostat エージェントの JAR ファイルパスへのカスタムトリガーの追加
次の例は、Cryostat エージェントの JAR ファイルパスに単純なカスタムトリガーを追加する方法を示しています。
JAVA_OPTS="-javaagent:/deployments/app/cryostat-agent-shaded.jar=\"[ProcessCpuLoad > 0.2 ; TargetDuration > duration('30s')]~profile\""
JAVA_OPTS="-javaagent:/deployments/app/cryostat-agent-shaded.jar=\"[ProcessCpuLoad > 0.2 ; TargetDuration > duration('30s')]~profile\""
Copy to Clipboard Copied! 前述のトリガーの例は、
ProcessCpuLoad
メトリクスの値が 30 秒以上、0.2 より大きい場合に、JFR レコーディングを開始するようにエージェントに指示します。この例は、エージェントに、JFR レコーディングにprofile
イベントテンプレートを使用するように指示します。- JVM システムプロパティーフラグの使用
以下の例は、JVM システムプロパティーフラグを使用して簡単なカスタムトリガーを指定する方法を示しています。
-Dcryostat.agent.smart-trigger.definitions="[ProcessCpuLoad > 0.2 ; TargetDuration > duration(\"30s\")]~profile"
-Dcryostat.agent.smart-trigger.definitions="[ProcessCpuLoad > 0.2 ; TargetDuration > duration(\"30s\")]~profile"
Copy to Clipboard Copied! この例では、前述の例と同じカスタムトリガー条件を使用しています。
- 環境変数の使用
次の例は、環境変数を使用して簡単なカスタムトリガーを指定する方法を示しています。
- name: CRYOSTAT_AGENT_SMART_TRIGGER_DEFINITIONS value: "[ProcessCpuLoad > 0.2 ; TargetDuration > duration(\"30s\")]~profile"
- name: CRYOSTAT_AGENT_SMART_TRIGGER_DEFINITIONS value: "[ProcessCpuLoad > 0.2 ; TargetDuration > duration(\"30s\")]~profile"
Copy to Clipboard Copied! この例では、前述の例と同じカスタムトリガー条件を使用しています。