アラートモニタリングルールでは、評価式の実行結果を使用して、アラートをトリガーする条件が満たされているかどうかを確認し、アラートの動的な重大度を評価します。 クエリ文の結果が入力され、集合演算の結果のフィールドは変数である。 評価式がtrueを返し、トリガー条件が満たされた連続回数が、連続トリガーパラメーターのしきい値に達した場合、アラートがトリガーされます。 このトピックでは、evaluate式の使用方法について説明します。

制限事項

アラートモニタリングルールで指定できる評価式には、次の制限があります。
  • 負の数は括弧 () で囲む必要があります。 例: x +(-100)<100
  • 数値は64ビットの浮動小数点数に変換されます。 数値が比較に使用される場合、エラーが発生する可能性があります。 たとえば、2つの数値を比較して、それらが等しいかどうかを確認できます。
  • 変数名には文字と数字のみを使用でき、先頭は文字である必要があります。
  • 評価式の長さは 1 ~ 128 文字です。
  • アラートがトリガーされるのは、評価式がtrueを返し、トリガー条件が満たされた連続回数が連続トリガーパラメーターのしきい値に達した場合にのみです。 たとえば、評価式が100 + 100の場合、計算結果は200となり、値はtrueではありません。 この場合、アラートはトリガーされません。
  • true、false、ドル記号 ($) 、およびピリオド (.) は、評価式の予約語です。 予約語は変数として使用できません。

構文

次の表に、アラートモニタリングルールの評価式でサポートされている構文の種類を示します。
構文の種類説明例:
算術演算子以下の算術演算子がサポートされています: 加算 (+) 、減算 (-) 、乗算 (*) 、除算 (/) 、およびモジュラス (%) 。
  • x * 100 + y > 200
  • x % 10 > 5
比較演算子以下の比較演算子がサポートされています: greater-than (>) 、greater-than-or-equal-to (>=) 、less-than (<) 、less-than-or-equal-to (<=) 、equal-to (=) 、not-equal-to (!)=) 、regex match (=~) 、regex not match (! 〜) 。
説明
  • バックスラッシュ (\) はエスケープする必要があります。
  • 正規表現 2 (RE 2) の構文が使用されます。 詳細は、「構文」をご参照ください。
  • x >= 0
  • x < 100
  • x <= 100
  • x == 100
  • x == "foo"
  • 正規表現の一致: x =~ "\\w +"
論理演算子AND (&&) および OR (||) 演算子がサポートされています。
  • x >= 0 && y <= 100
  • x > 0 || y >0
否定演算子否定演算子 (!) がサポートされています。 ! (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')
特別なフィールド名フィールド名は、結果セットで返されるフィールドの名前です。 フィールド名として文字列を使用することを推奨します。 数字のみを含む、または特殊文字を含むフィールド名は推奨されません。 特殊文字にはパーセント記号 (%) が含まれます。

フィールド名に特殊文字または数字のみが含まれる場合は、フィールド名を [] で囲む必要があります。

  • [5xxパーセント (%)] > 20
  • [404] > 20

セット操作の結果を評価する

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 は、優先順位に並び替えられた以下の比較ルールを使用します。
  1. 左右のオペランドは64ビットの浮動小数点数に変換され、番号順に基づいて比較されます。 変換に失敗した場合は、以下の優先度の動作を行う。
  2. 左右のオペランドは文字列に変換され、アルファベット順に基づいて比較されます。
左右のオペランドは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 次の図は、設定を示しています。 例 1
  • 例2: HTTPステータスコード500が15分間に10回を超えると、アラートがトリガーされます。 この場合、評価式は status == 500 && total > 10 となります。 次の図は、設定を示しています。 例 2