ELK Watcher использует сравнение массивов для вложенных сегментов

Я использую ELK watcher для предупреждений версии 2.2, мой запрос выводит что-то вроде этого

{
    "took": 549,
    "timed_out": false,
    "_shards": {
    "total": 1040,
    "successful": 1040,
    "failed": 0
},
"hits": {
"total": 468101,
"max_score": 0,
"hits": [ ]
 },
 "aggregations": {
   "2": {
     "buckets": [
     {
      "6": {
        "doc_count_error_upper_bound": 0,
        "sum_other_doc_count": 0,
          "buckets": [
             {
               "1": {
               "value": 84.86304909560724
               },
             "key": "hostname",
             "doc_count": 10000
      }


         ]
 },
    "key_as_string": "2016-11-09T19:00:00.000Z",
    "key": 1478718000000,
    "doc_count": 47855
}

в состоянии наблюдателя я хочу сравнить, если "значение" больше некоторого порога,

я попытался использовать array_compare, но он не работает для вложенных массивов, как этот, он подходит для полей вплоть до sum_other_doc_count, но не идет дальше.

если кто-нибудь может помочь мне с этим

1 ответ

Это похоже на то, что я пытаюсь выяснить. Предполагая, что у вас все в порядке, просто сравнивая значения в первых элементах массивов / сегментов, мне повезло, используя синтаксис:

"condition": {
    "compare": {
        "ctx.payload.aggregations.2.buckets.0.6.buckets.1.value": {
            "gte": 80
        }
    }
}

Я бы предложил назвать ваши "агги", чтобы избежать "магических чисел" выше (кроме жестко закодированного "0" для первого элемента в корзине).

Другие вопросы по тегам