アラートモニタリングルールでは、評価式の実行結果を使用して、アラートをトリガーする条件が満たされているかどうかを確認し、アラートの動的な重大度を評価します。 クエリ文の結果が入力され、集合演算の結果のフィールドは変数である。 評価式がtrueを返し、トリガー条件が満たされた連続回数が、連続トリガーパラメーターのしきい値に達した場合、アラートがトリガーされます。 このトピックでは、evaluate式の使用方法について説明します。
制限事項
アラートモニタリングルールで指定できる評価式には、次の制限があります。
- 負の数は括弧 () で囲む必要があります。 例:
x +(-100)<100
。 - 数値は64ビットの浮動小数点数に変換されます。 数値が比較に使用される場合、エラーが発生する可能性があります。 たとえば、2つの数値を比較して、それらが等しいかどうかを確認できます。
- 変数名には文字と数字のみを使用でき、先頭は文字である必要があります。
- 評価式の長さは 1 ~ 128 文字です。
- アラートがトリガーされるのは、評価式がtrueを返し、トリガー条件が満たされた連続回数が連続トリガーパラメーターのしきい値に達した場合にのみです。 たとえば、評価式が
100 + 100
の場合、計算結果は200となり、値はtrueではありません。 この場合、アラートはトリガーされません。 - true、false、ドル記号 ($) 、およびピリオド (.) は、評価式の予約語です。 予約語は変数として使用できません。
構文
次の表に、アラートモニタリングルールの評価式でサポートされている構文の種類を示します。
構文の種類 | 説明 | 例: |
---|---|---|
算術演算子 | 以下の算術演算子がサポートされています: 加算 (+) 、減算 (-) 、乗算 (*) 、除算 (/) 、およびモジュラス (%) 。 |
|
比較演算子 | 以下の比較演算子がサポートされています: greater-than (>) 、greater-than-or-equal-to (>=) 、less-than (<) 、less-than-or-equal-to (<=) 、equal-to (=) 、not-equal-to (!)=) 、regex match (=~) 、regex not match (! 〜) 。 説明
|
|
論理演算子 | AND (&&) および OR (||) 演算子がサポートされています。 |
|
否定演算子 | 否定演算子 (!) がサポートされています。 | ! (a < 1 && a > 100) |
数値定数 | 数値定数がサポートされています。 Log Serviceは、数値定数を64ビット浮動小数点数に変換して処理します。 | x > 100 |
文字列定数 | 文字列定数がサポートされています。 文字列定数は 'String' の形式です。 例: 'String' 。 | foo == 'String' |
ブール定数 | ブール定数がサポートされています。 有効な値は、true および false です。 | (x > 100) == true |
括弧 | 括弧 () を使用して、計算の標準優先順位をオーバーライドできます。 | x * (y + 100) > 100 |
contains 関数 | contains 関数を使用して、文字列に部分文字列が含まれているかどうかを確認できます。 たとえば、contains(foo, 'hello') を呼び出し、trueが返された場合、foo文字列にはhello部分文字列が含まれます。 | contains(foo, 'hello') |
特別なフィールド名 | フィールド名は、結果セットで返されるフィールドの名前です。 フィールド名として文字列を使用することを推奨します。 数字のみを含む、または特殊文字を含むフィールド名は推奨されません。 特殊文字にはパーセント記号 (%) が含まれます。 フィールド名に特殊文字または数字のみが含まれる場合は、フィールド名を [] で囲む必要があります。 |
|
セット操作の結果を評価する
Log Serviceは、最大3つのデータセットの関連モニタリングをサポートし、セット操作の結果を評価します。 詳細については、「複数集合の演算」をご参照ください。
評価式で動的変数を使用できます。 詳細については、「評価式を使用したトリガー条件の指定」をご参照ください。
演算方法
説明
- Log Serviceは、すべての数値を64ビット浮動小数点数に変換します。
- 文字列定数は、一重引用符 ('') または二重引用符 (" ") で囲む必要があります。 例:
'String
および"String"
。 - ブール値はtrueとfalseです。
演算子 | 演算方法 | ||
---|---|---|---|
変数間の演算 | 文字列でない定数と変数の演算 | 文字列定数と変数の演算 | |
加算演算子 (+)、減算演算子 (-)、乗算演算子 (*)、除算演算子 (/)、および剰余演算子(%) | 算術演算子が適用される前に、左右のオペランドは64ビットの浮動小数点数に変換されます。 | 算術演算子が適用される前に、左右のオペランドは64ビットの浮動小数点数に変換されます。 | サポートされていません。 |
比較演算子: greater-than (>) 、greater-than-or-equal-to (>=) 、less-than (<) 、less-than-or-equal-to (<=) 、equal-to (=) 、not-equal-to (!=) | Log Service は、優先順位に並び替えられた以下の比較ルールを使用します。
| 左右のオペランドは64ビットの浮動小数点数に変換され、番号順に基づいて比較されます。 | 左右のオペランドは文字列に変換され、アルファベット順に基づいて比較されます。 |
正規表現演算子: regex match (=~) とregex not match (!~) | 正規表現演算子を適用する前に、左右のオペランドが文字列に変換されます。 | サポートされていません。 | 正規表現演算子を適用する前に、左右のオペランドが文字列に変換されます。 |
論理演算子: AND (&&) および OR (||) | 左右のオペランドは部分式でなければならず、演算の結果はブール値でなければなりません。 たとえば、評価式は $0.success_ratio < 90 && $1です。 平均応答時間> 60 | 左右のオペランドは部分式でなければならず、演算の結果はブール値でなければなりません。 たとえば、評価式は $0.success_ratio < 90 && $1です。 平均応答時間> 60 | 左右のオペランドは部分式でなければならず、演算の結果はブール値でなければなりません。 たとえば、評価式は $0.success_ratio < 90 && $1です。 平均応答時間> 60 |
否定演算子 (!) | 必要なオペランドはサブ式でなければならず、演算の結果はブール値でなければなりません。 たとえば、評価式は! ($0.success_ratio < 90) この演算子は、集合演算の結果のフィールドに直接使用することはできません。 | 必要なオペランドはサブ式でなければならず、演算の結果はブール値でなければなりません。 たとえば、評価式は! ($0.success_ratio < 90) この演算子は、集合演算の結果のフィールドに直接使用することはできません。 | 必要なオペランドはサブ式でなければならず、演算の結果はブール値でなければなりません。 たとえば、評価式は! ($0.success_ratio < 90) この演算子は、集合演算の結果のフィールドに直接使用することはできません。 |
contains 関数 | contains関数を実行する前に、左右のオペランドが文字列に変換されます。 | サポートされていません。 | contains関数を実行する前に、左右のオペランドが文字列に変換されます。 |
括弧() | 括弧 () は、計算の標準優先順位をオーバーライドするために使用されます。 | 括弧 () は、計算の標準優先順位をオーバーライドするために使用されます。 | 括弧 () は、計算の標準優先順位をオーバーライドするために使用されます。 |
例
- 例1: リクエストの成功率が90% 未満で、リクエストの平均応答時間が15分間で60秒を超える場合、アラートがトリガーされます。 評価式は $0、
success_ratio < 90 && $1です。 平均応答時間 \(s\) > 60
次の図は、設定を示しています。 - 例2: HTTPステータスコード500が15分間に10回を超えると、アラートがトリガーされます。 この場合、評価式は
status == 500 && total > 10
となります。 次の図は、設定を示しています。