Logstash 中的 For 循环

Udy*_*Udy 1 for-loop logstash

我在 logstash 中有一个事件,如下所示:

{
   "terms" : { "A" : 1, "B" : 0.5, "c" : 1.6 }
}
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

{
   "terms" : [ "A", "B", "C" ]
}
Run Code Online (Sandbox Code Playgroud)

我没有找到任何关于for循环的文档或获取字典的键。

我想做类似的事情:

filter {
  for key in [terms]{
    mutate { 
      merge => ["tmp_terms", key]
  }

  mutate { 
      remove_field => ["terms"]
      rename => ["tmp_terms", "terms"]
  }
}
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

Mag*_*äck 6

Logstash 没有循环结构,但您可以使用ruby插件:

filter {
  ruby {
    code => "event['terms'] = event['terms'].keys"
  }
}
Run Code Online (Sandbox Code Playgroud)