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" для первого элемента в корзине).