アラーム機能を使用するには、アラーム条件式を設定します。 アラーム条件を満たしているかどうかは、アラーム条件式の結果が true または false かが判別されます。

true または false が判別されると、設定したクエリの結果は固定値として、また、ログフィールドは変数として処理さます。 true の場合にアラームがトリガーされます。

制限

  • 負数は括弧 () で囲む必要があります (例: x+(- 100)<100 )。
  • 数値は 64 ビット浮動小数点数にします。 比較演算を実行すると、エラーが発生する可能性があります。 たとえば、等号演算子 (==) を使用するとエラーが発生する可能性があります。
  • 変数には英数字のみを使用し、始まりは英字にします。
  • 式の長さは最大 128 字です。
  • 式に複数の結果セットを組み合わせる場合は、最大 1000 の結果セットを組み合わせることができます。 結果セットの組み合わせがすべて false の場合、式は false と見なされます。
  • 1 つのアラームに対して最大 3 つのクエリを設定できます。
  • 式の結果が true (ブール型) である場合にのみアラームは発生します。 たとえば、式「100+100」の計算結果は「200」であるため、アラームはトリガーされません。
  • truefalse$、および . は、予約変数のため使用できません。

基本構文

アラーム条件式には、次の構文を使用することができます。
構文の種類 説明
基本演算子 加算演算子 (+)、減算演算子 (-)、乗算演算子 (*)、除演算子算 (/)、および剰余演算子(%) を使用できます。

x*100+y>200

x%10>5

比較演算子 大なり (>)、大なり (> =)、小なり (<)、小なり (<=)、等しい (==)、等しくない (! =)、正規表現のマッチ (=~)、および、正規表現の否定 (! ~) を使用できます。
  • スラッシュにはエスケープ文字を使用します。
  • 正規表現には、RE2 ガイドに則したものにします。

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)

数値定数 数値定数は 64 ビット浮動小数点数として処理されます。

x > 100

文字列定数 文字列は一重引用符で囲みます。 たとえば、'文字列'。

foo == '文字列'

ブール定数 true および false

(x > 100) == true

括弧() 括弧 () は優先的に計算されます。

x*(y+100)>100

Contains 関数 Contains 関数は、サブストリングを含むかどうかを判別します。 たとえば、式 contains(フィールド, 'xxxx') の結果が true の場合、フィールドの文字列に xxxx サブストリングを含むと判断されます。

contains(foo, 'hello')

式に複数の結果セットを組み合わせる

  • 構文

    アラームは複数のグラフに関連付けることができます。 そうすると、指定した条件式を評価するために、システムは複数のクエリ結果を取得します。 このような場合は、条件式の変数の前にプレフィックスを付けます。 そうするとシステムは、式を評価する際に、どのクエリ結果から対応する変数の値を取得するかを判断できます。 変数は、$N.fieldname といった具合に指定します (N はクエリの順番)。 最大 3 つのクエリを指定できます。 N に指定可能な値は、0 から 2 です。 たとえば、「$0.foo」は最初のクエリの「foo」フィールドを指していることになります。 クエリを 1 つのみ指定する場合は、プレフィックスを指定する必要はありません。

  • 式の評価

    複数のクエリ結果が返される場合、システムは、式に設定されている変数に従って、式の評価に使用するクエリ結果を決定します。 たとえば、「$0.foo > 100 && $1.bar < 100」というクエリを 3 つ含む式を指定した場合、クエリの評価結果は x、y、z となります。 この場合、式の計算に必要な結果は、最初の 2 つのみです。 システムは true が返されるまで式を x*y 回評価するか、計算の再試行回数の上限に達して false が返されるまで再試行し続けます。 計算の再試行回数は最大 1000 です。

演算方法

  • 演算の数値は、64 ビット浮動小数点数として扱われます。
  • 各文字列定数は、 '文字列' や "文字列" のように、一重引用符または二重引用符で囲む必要があります。
  • ブール値には、true と false があります。
演算子 演算方法
変数 2 つの演算 文字列でない定数と変数の演算 文字列定数と変数の演算
算術演算(+ - * /%) 左右の値は、演算で使用される数字に変換されます。 非対応
比較演算:

大なり (>)、大なり (> =)、小なり (<)、小なり (<=)、等しい (==)、および、等しくない (! =)

演算の優先順位は次のとおりです。
  1. 左右の値は数値に変換され、番号順に演算処理されます。 左右の値の変換に失敗した場合は、演算の優先度は下げられます。
  2. 左右の値は、文字列型としてアルファベット順に演算処理されます。
左右の値は、数値に変換され、番号順に演算処理されます。 左右の値は、アルファベット順の演算で文字列型の値として使用されます。
正規表現が合致するか否か

正規表現マッチ (=~)、正規表現否定 (! ~)

左右の値は、文字列型として演算処理されます。 非対応 左右の値は、文字列型として演算処理されます。
論理演算:

and (&&) および or (||)

2 つの演算子をクエリ結果フィールドに直接使用することはできません。 左右の値は両方とも部分式でなければならず、演算結果は両方ともブール型です。
否定演算子 (!) 否定演算子をクエリ結果フィールドに直接使用することはできません。 反転値は部分式、演算結果はブール型である必要があります。
文字列検索関数 (contains) 左右の値は、文字列型に変換され、演算処理されます。 非対応 左右の値は、文字列型として演算処理されます。
括弧() 優先的に演算処理されます。