匹配logstash mutate过滤器中的多个字段名称

时间:2016-03-04 13:05:27

标签: logstash logstash-grok logstash-configuration

我想将所有指标*字段转换为浮点数以用于logstash。对于像

这样的结构
{
  "metric1":"1",
  "metric2":"2"
}

我想做一些像

这样的事情
mutate {
   convert => {"metric*" => "float" }
}

这可能吗?

1 个答案:

答案 0 :(得分:4)

如果不使用像这样的红宝石过滤器,这是不可能的:

  ruby {
    code => "
      event.to_hash.keys.each { |k|
        if k.start_with?('metric') and event[k].is_a?(String)
          event[k] = event[k].to_float
        end
     }
   "
  }

因此,基本上查看事件中的所有键,如果它们以度量标准开头,则将它们转换为浮点数。 is_a?(String)就是为了防止你得到一个数组字段(因为.to_float无法使用它)