elasticsearch - ELK Watcher对嵌套存储桶使用数组比较

标签 elasticsearch elasticsearch-plugin elastic-stack elasticsearch-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的字段匹配,但不进一步。

如果有人可以帮助我

最佳答案

这似乎类似于我正在尝试解决的问题。假设您可以只比较数组/存储桶的第一个元素中的值,我就很幸运使用以下语法:

"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/

相关文章:

nginx - Elasticsearch Head插件无法通过Nginx反向代理工作

elasticsearch - kopf elasticsearch插件

elasticsearch - 尝试使用jdbc River ElasticSearch插件进行批处理

elasticsearch - 添加副本字段并将其设置为小写

java - 使用 Java API 将 _timestamp 添加到 Elasticsearch 结果

elasticsearch - Logstash - 使用 Grok 匹配模式将结果分成不同的对象

elasticsearch - elasticsearch-无法通过更新API更新密集向量字段

elasticsearch - 在 Elasticsearch 中定义字符串数组字段

具有多个上下文的 ElasticSearch 5.x 上下文建议器

Java Elasticsearch 客户端 : throws ConnectException when connecting from local to ES in Google Cloud VM