0

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

{ 
    "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, но не идет дальше.

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

ответ

0

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

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

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