Logstash过滤器将“$ epoch。$ microsec”转换为“$ epoch_millis”

时间:2014-11-06 22:24:12

标签: logstash logstash-grok

我正在尝试将$epoch.$microsec格式的时间戳字段转换为$epoch_millis

示例:

1415311569.541062  -->  1415311569541

Logstash似乎没有任何方法可以将数字相乘,因此ts * 1000并且转换为长数字。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

在您的特定情况下,您确实可以将问题转化为字符串操作问题,但您也可以使用ruby过滤器:

filter {
  ruby {
    # do some calculation
    code => "event['ts'] = (1000 * event['ts'].to_f).round"
  }
}

答案 1 :(得分:2)

这就是最终的工作。

mutate {
        convert => { 
            "ts" => "string"
        }

        gsub => [
            "ts", "\.", "",
            "ts", "\d{3}$", ""
        ]
}

```