このトピックでは、アラートルールのトリガー条件の構文について説明します。
変数を使用して、アラートルールのトリガー条件でログフィールドを参照できます。 アラートルールを評価するために、Simple Log Serviceは、アラートルールで指定されたクエリステートメントに基づいてログクエリを実行し、クエリ結果がトリガー条件を満たしているかどうかを確認します。 トリガー条件が満たされると、アラートがトリガーされます。
制限事項
このセクションでは、トリガー条件の制限を示します。
負の数は括弧 () で囲む必要があります。たとえば、x +(-100)<100です。
数値は 64 ビット浮動小数点数に変換されます。 したがって、比較が含まれる場合、アラートルール評価の結果は不正確であり得る。
変数名には、文字と数字のみを使用でき、文字で始まる必要があります。
トリガー条件の長さは1 ~ 128文字である必要があります。
アラートルールが複数のグラフに関連付けられている場合、アラートルールの評価ごとに複数のクエリが実行されます。 したがって、複数のログエントリがクエリ結果として返されます。 Simple Log Serviceは、各セットからログエントリを選択し、選択したログエントリの組み合わせがトリガー条件を満たしているかどうかを確認します。 アラートルールの評価ごとに、Simple Log Serviceは最大1,000のログエントリの組み合わせをチェックします。 組み合わせの1つがトリガー条件を満たすと、アラートがトリガーされます。
アラートルールは、最大3つのチャートまたはクエリステートメントに関連付けることができます。
トリガー条件の結果がtrueの場合、トリガー条件が満たされていることを意味します。 この場合、アラートがトリガーされます。 たとえば、トリガー条件が100 + 100の場合、結果は200になり、アラートはトリガーされません。
Simple Log Serviceは、trueとfalseの2つの単語を予約します。 また、ドル記号 ($) およびピリオド (.) の 2 つの特殊文字も予約されています。 これらの単語や特殊文字は変数として使用できません。
構文
次の表に、トリガー条件で使用される構文を示します。
構文タイプ | API 操作 | 説明 |
算術演算子 | 加算 (+) 、減算 (-) 、乗算 (*) 、除算 (/) 、およびモジュラス (%) 演算子をサポートします。
|
|
比較演算子 | 8つの比較演算子をサポートします。greater-than (>) 、greater-than-or-equal-to (>=) 、less-than (<) 、less-than-or-equal-to (<=) 、not-equal-to (!=) 、match (=~) 、およびnot-match (!~) 。 説明
|
|
論理演算子 | AND (&&) およびOR (| |) 演算子をサポートします。 |
|
否定演算子 | not operator (!) をサポートします。 | ! (a < 1 && a > 100) |
数値定数 | 数値定数をサポートします。 Simple Log Serviceは、数値定数を64ビット浮動小数点数に変換します。 | x > 100 |
文字列定数 | 'String' の形式の文字列定数 ('string' など) をサポートします。 | foo == '文字列' |
ブール定数 | trueとfalseをサポートします。 | (x > 100) == true |
括弧 | 括弧 () をサポートします。 括弧を使用して標準の優先順位をオーバーライドし、Simple Log Serviceでトリガー条件の囲まれた部分を囲まれていない部分の前に評価するように強制できます。 | x * (y + 100) > 100 |
という名前の関数には、 | contains関数をサポートします。 contains関数は、文字列に部分文字列が含まれているかどうかをチェックします。 たとえば、foo変数によって参照される文字列にhello部分文字列が含まれている場合、contains(foo, 'hello') はtrueを返します。 | contains(foo, 'hello') |
複数のチャートに関連付けられているアラートルールのトリガー条件
構文
アラートルールは、複数のクエリステートメントに関連付けることができます。 トリガー条件で変数を使用してクエリ文の結果からフィールドを参照する場合は、変数の前に $N.fieldnameの形式でクエリ文のシリアル番号を付ける必要があります。 クエリ文のシリアル番号は、クエリ文の結果をプロットするグラフのシリアル番号と同じです。 詳細については、「グラフのシリアル番号の表示方法」をご参照ください。 各アラートルールは最大3つのクエリステートメントに関連付けられているため、Nの値の範囲は0〜2です。 たとえば、$0.fooは、最初のクエリステートメントの結果からfooフィールドの値を参照します。 アラートルールが1つのクエリステートメントにのみ関連付けられている場合、トリガー条件でプレフィックスを指定する必要はありません。
評価
アラートルールの評価中に、複数のクエリが実行され、複数のログエントリのセットがクエリ結果として返された場合、Simple log Serviceは、トリガー条件でフィールドが参照されているクエリ結果のみを使用します。 たとえば、3セットのログエントリが返されます。 第1のセット内のログエントリの数はzであり、第2のセット内のログエントリの数はyであり、第3のセット内のログエントリの数はzである。 トリガー条件が $0.foo > 100 && $1.bar < 100の場合、Simple Log Serviceはアラートルールの評価中に最初のセットと2番目のセットのみを使用します。 Simple Log Serviceは、2つのセットのそれぞれからログエントリを選択し、選択したログエントリの組み合わせがトリガー条件を満たしているかどうかを確認します。 Simple Log Serviceは、x × yの組み合わせをチェックします。 x × yの結果が1,000を超える場合、Simple Log Serviceは1,000の組み合わせのみをチェックします。 いずれかの組み合わせがトリガー条件を満たすと、Simple Log Serviceがアラートをトリガーします。
演算子の実装
Simple Log Serviceは、すべての数値を64ビット浮動小数点数に変換します。
文字列定数は、一重引用符 ('') または二重引用符 (" ") で囲む必要があります (例: 'stringまたは" string ") 。
ブール値は、true および false です。
演算子 | 実装 | ||
変数間の操作 | 文字列以外の定数と変数の操作 | 文字列定数と変数の操作 | |
加算演算子 (+)、減算演算子 (-)、乗算演算子 (*)、除算演算子 (/)、および剰余演算子(%) | 算術演算子が適用される前に、左右のオペランドは 64 ビット浮動小数点数に変換されます。 | サポートされていません。 | |
比較演算子: greater-than (>) 、greater-than-or-equal-to (>=) 、less-than (<) 、less-than-or-equal-to (<=) 、equal-to (=) 、not-equal-to (!=) | Simple Log Serviceは、優先順位でソートされた次の比較ルールを使用します。
| 左右のオペランドは 64 ビット浮動小数点数に変換され、数値順に比較されます。 | 左と右のオペランドは文字列に変換され、辞書式順序に基づいて比較されます。 |
正規表現演算子: regex match (=~) とregex not match (!~) | 一致演算子の適用前に、左右のオペランドは文字列に変換されます。 | サポートされていません。 | 一致演算子の適用前に、左右のオペランドは文字列に変換されます。 |
論理演算子: AND (&&) および OR (||) | 論理演算子はログフィールドに適用できません。 左右のオペランドは条件式である必要があります。 論理演算子が返す結果は、ブール型のデータ型です。 | ||
否定演算子 (!) | not演算子はログフィールドには適用できません。 右オペランドは条件式でなければなりません。 not演算子が返す結果は、ブール型のデータ型です。 | ||
という名前の関数には、 | contains関数が実行される前に、入力パラメータは文字列に変換されます。 | サポートされていません。 | contains関数が実行される前に、入力パラメータは文字列に変換されます。 |
括弧() | 括弧を使用して、標準の優先順位をオーバーライドし、Simple Log Serviceがトリガー条件の囲まれた部分を、囲まれていない部分の前に評価するように強制します。 |