2016-06-08 58 views
0

我想添加一个字段来设置@timestamp时区匹配我的时间戳 我已经尝试添加时区过滤器,但它没有帮助。无法将类org.jruby.RubyObject的实例转换为类java.lang.String

原来的时间戳的样子,

"@timestamp" => "2016-06-08T01:36:42.655Z", 

我的日期过滤器:

mutate { 
add_field => [ "localtime", "%{@timestamp}" ] 
} 
date { 
    locale => "en_US" 
    timezone => "America/New_York" 
    match => [ "localtime", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"] 
target => "localtime" 
} 

,并得到警告_dateparsefailure

我失去了什么? 任何人都可以请我帮忙吗?谢谢。

+0

在你的'match'中,是不是''timestamp''应该是''@timestamp''? – Val

回答

0

您的匹配需要在与@timestamp不同的字段上工作,该字段不是字符串,因此无法解析。由于您已将@timestamp复制到datetime中,因此您现在可以在match中使用datetime

mutate { 
    add_field => [ "datetime", "%{@timestamp}" ] 
} 
date { 
    locale => "en_US" 
    timezone => "America/New_York" 
    match => [ "datetime", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"] 
    #match => [ "datetime", "ISO8601"] # <- you can also use this 
    target => "datetime" 
} 
+0

“日期时间”=> “2016-06-08T03:54:03.635Z”, “标签”=> [ [0] “_dateparsefailure” ], –

+0

奇怪,我得到了我的情况下,没有'_dateparsefailure'。 – Val

+0

您确定您使用与我的完全相同的过滤器吗? – Val

相关问题