要转换的Logstash过滤器"$新纪元.$microsec“;至$新纪元;

要转换的Logstash过滤器"$新纪元.$microsec“;至$新纪元;,logstash,logstash-grok,Logstash,Logstash Grok,我正在尝试将格式为$epoch.$microsec的时间戳字段转换为$epoch\u millis 例如: 1415311569.541062 --> 1415311569541 Logstash似乎没有任何方法可以将数字相乘,因此ts*1000和转换为long是不可能的 有什么想法吗?这就是最终奏效的方法 mutate { convert => { "ts" => "string" } gsub

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

例如:

1415311569.541062  -->  1415311569541
Logstash似乎没有任何方法可以将数字相乘,因此
ts*1000
和转换为long是不可能的


有什么想法吗?

这就是最终奏效的方法

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

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

```

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

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