2.4. カスタムトリガーの一般的な構文ルール
カスタムトリガーを定義するための次の構文ガイドラインを考慮してください。
- カスタムトリガー定義は、全体的なトリガー条件と、JFR レコーディングに使用されるイベントテンプレートの名前の両方で構成される必要があります。
-
トリガー式全体を角括弧で囲む必要があります (例:
[ProcessCpuLoad > 0.2 ; TargetDuration < duration("30s")])。 - 前の例に示すように、トリガー式に空白を使用して可読性を高めることはできますが、これは必須ではありません。
-
イベントテンプレートの名前は、トリガー式の後に定義し、その前にチルダ (
~) 文字を付ける必要があります (例:~profile)。 -
トリガー式には、1 つ以上の制約とターゲット期間を含めることができます。一連の制約とターゲット期間はセミコロン (
;) 文字で区切る必要があります。 -
各制約には、MBean カウンターの名前、
>(より大きい)、=(等しい)、<(より小さい) などの関係演算子、および指定された値など、関係演算子などを含める必要があります。指定できる関係演算子のタイプと値は、関連付けられた MBean カウンターのタイプ (例:ProcessCpuLoad > 0.2) によって異なります。 &&(AND)、||(OR)、または!などの論理演算子を使用して制約をグループ化できます。(NOT) ロジック。操作の順序と演算子の優先順位を読みやすく明確にするために、グループ化された制約を丸括弧で囲む場合がありますが、これは必須ではありません。以下に例を示します。[(MetricA > value1 && MetricB < value2) || MetricC == 'stringvalue' ; TargetDuration > duration("30s")]- カスタムトリガーの一部として指定される各 MBean カウンターの名前は、スペルと大文字の使用に関して正確な構文規則に従う必要があります。指定できる MBean メトリクスの完全なリストは、MBean カウンタータイプ を参照してください。
- カスタムトリガーに対して定義できるターゲット期間は 1 つだけです。対象の期間は、角かっこで囲まれたトリガー式全体に適用されます。
-
対象の間は、秒、分、または時間で表すことができます。たとえば、
30 秒は 30 秒、5 分は 5 分、2hは 2 時間を意味します。 - 対象の期間は任意です。対象の期間が指定されていない場合、トリガー条件が満たされるとすぐにトリガーが発生します。
複数のカスタムトリガー定義を一緒に指定でき、それぞれが個別の JFR レコーディングに関連します。異なるカスタムトリガー定義はコンマ (
,) 文字で区切る必要があります。以下に例を示します。[ProcessCpuLoad>0.2]~profile,[ThreadCount>30]~Continuous