2016-06-08 61 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

相關問題