演算子 | 説明 | 例 |
$N.__QUERYCOUNT__ | 実行ステートメントの結果件数です。 Nは対応する実行ステートメントの番号です。異なるユースケースに応じて、その具体的な意味は以下のとおりです。 ログトピック 実行ステートメントにSQLが含まれない場合:検索条件に一致する生ログの件数 実行ステートメントにSQLが含まれる場合:SQL結果件数(注意:SQLでlimitが指定されていない場合、デフォルトで最大100件の結果が返されます) 指標トピック:PromQLクエリ結果件数 | $1.__QUERYCOUNT__ |
$N.keyname | 実行ステートメントの結果を参照します。 Nは対応する実行ステートメントの番号、keynameは実行ステートメントの結果におけるフィールド名です。注意: keynameの先頭文字は英字である必要があります。英字、数字、アンダースコアを含めることができます。特殊文字が含まれる場合は以下の通りです:日志主题の実行ステートメントでは、AS構文を使用してフィールド名にエイリアスを設定できます。 角括弧で全体を囲みます。例えば [$1.@value]のようにします。監視対象が指標トピックの場合、指標ディメンション(label)を除き、システムは以下の変数をプリセットします: $N.__name__:指標の名前$N.value:指標の値$N.time:指標に対応する時刻、秒単位のUNIXタイムスタンプ指標ディメンション(label)のフィールド名が上記の変数と競合する場合、元のフィールド名の前に@記号が自動的に追加されます。例えば、 [$1.@value]です。 | $1.ErrCount $1.value |
+ | 合計演算子 | $1.ErrCount+$1.FatCount>10 |
- | 減法演算子 | $1.Count-$1.InfoCount>100 |
* | 乗法演算子 | $1.RequestMilSec*1000>10 |
/ | 除算演算子 | $1.RequestSec/1000>0.01 |
% | 剰余演算子 | $1.keyA%10==0 |
== | 比較演算子:等しい | $1.ErrCount==100 $1.level=="Error" |
> | 比較演算子:より大きい | $1.ErrCount>100 |
< | 比較演算子:より小さい | $1.pv<100 |
>= | 比較演算子:以上 | $1.ErrCount>=100 |
<= | 比較演算子:以下 | $1.pv<=100 |
!= | 比較演算子:等しくない | $1.level!="Info" |
() | 括弧、演算の優先順位を制御します。 | ($1.a+$1.b)/$1.c>100 |
&& | 論理演算子:AND | $1.ErrCount>100 && $1.level=="Error" |
|| | 論理演算子:OR | $1.ErrCount>100 || $1.level=="Error" |
$1.aの値が80、$1.bの値が20の場合:$1.a+$1.b:結果は100であり、ブール値ではないため、アラートはトリガーされません。$1.a+$1.b>=100:結果が「真」の場合、アラートがトリガーされます。$1.key1は番号1の実行ステートメントのkey1フィールドを参照し、$2.key2は番号2の実行ステートメントのkey2フィールドを参照します。$N.__QUERYCOUNT__ > 0を直接使用します(その中のNを実行ステートメント番号に置き換えてください)。詳細は例3を参照してください。$1.a+$2.b>100の場合、実行ステートメント1がm件の結果を返し、実行ステートメント2がn件の結果を返すと、m * n回の計算が行われます。計算中に$1.a+$2.b>100が真になると停止するか、または計算が1000回を超えると停止します。1000回を超えてもトリガー条件を満たさない場合、今回の判断結果は偽とみなされ、アラートはトリガーされません。level:error
$1.__QUERYCOUNT__>0
uid:10001| select avg(request_time) as latency
$1.latency>10
filesystem_usage_pct > 0.5
$1.__QUERYCOUNT__>0
__QUERYCOUNT__はシステムのプリセット変数であり、実行ステートメントの結果件数を表します。実行ステートメントでは> 0.5によって指標がフィルタリングされているため、実行ステートメントの結果件数が0より大きい場合にアラートをトリガーする必要があります。フィードバック