我正在使用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的字段匹配,但不进一步。
如果有人可以帮助我
最佳答案
这似乎类似于我正在尝试解决的问题。假设您可以只比较数组/存储桶的第一个元素中的值,我就很幸运使用以下语法:
"condition": {
"compare": {
"ctx.payload.aggregations.2.buckets.0.6.buckets.1.value": {
"gte": 80
}
}
}
我建议命名您的“ggs”以避免上面的“魔术数字”(除了存储桶中第一个元素的硬编码“0”之外)。
关于elasticsearch - ELK Watcher对嵌套存储桶使用数组比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40530050/