私はbosun
を実行してelasticsearch
データセットに対して警告しています。elasticsearchクエリで結果が見つからない場合は0を返します
さまざまなことを行う多数のcronジョブが存在するというシナリオがあります。これらが正常に実行されると、成功メッセージが記録されます。彼らが何らかの理由で死ぬか失敗して成功メッセージを記録できない場合は、それについて知る必要があります。
私の質問は、null
ではなく、レコードが見つからない場合に0
の結果を得る方法です。ここでは基本的なクエリです:
nv(sum(escount(esls("logs"), "context.taskname", esand(esgte("context.elapsed_time", 0), esor(esquery("context.taskname", "Task1 or Task2 or Task3 or Task4"))), "360m", "360m", "")), 0)
与えられたタスクは、指定した間隔で実行している場合、クエリは、タスクがログインした成功メッセージの数のためにゼロ以外の値を返す必要があります。
これはうまくいきますが、タスクが実行されていない場合にのみ警告が発せられます。問題は、Task1
が完了メッセージを実行してログに記録していない場合は、0
カウントを返すのではなく、最終的なグループ化から削除されただけです。
ゼロ値であってもesor
の各タスクが何かを返すようにする方法はありますか?
これは可能な答えのように聞こえます。上記の例のクエリでどのように使用されるかのコンテキストを教えてください。 – user101289
@ user101289それは表現言語の外に存在します。アラートキーワードであるため、アラート定義では 'unknownIsNormal = true'と表示されます。その後、あなたはnvを落とすことができます。 –
それは違いを生じさせていないようです。 'Task1'を何か存在しないもの(例えば' Tasky1')に変更した場合、タスク名でグループ化された返されたリストには表示されません – user101289