Watcher 链式负载转换编辑

一种 负载转换,它按顺序执行配置的负载转换列表,其中一个转换的输出作为链中下一个转换的输入。此转换接受的负载作为链中第一个转换的输入,而链中最后一个转换的输出是整个 chain 转换的输出。

您可以使用链式负载转换从其他可用转换构建更复杂的转换。例如,您可以组合 search 负载转换和 script 负载转换,如下所示

"transform" : {
  "chain" : [ 
    {
      "search" : {  
        "request": {
          "indices" : [ "logstash-*" ],
          "body" : {
            "size" : 0,
            "query" : {
              "match" : { "priority" : "error" }
            }
          }
        }
      }
    },
    {
      "script" : "return [ 'error_count' : ctx.payload.hits.total ]"  
    }
  ]
}

chain 负载转换定义

链中的第一个转换(在本例中为 search 负载转换)

链中的第二个也是最后一个转换(在本例中为 script 负载转换)

此示例在集群上执行 count 搜索以查找 error 事件。然后将搜索结果传递给第二个 script 负载转换。script 负载转换提取总命中次数并将其分配给新生成的负载中的 error_count 字段。这个新的负载是 chain 负载转换的输出,并替换了 Watcher 执行上下文中的负载。