2017-04-10 17 views
0

私は終了時間が変化するので、経過したプラグインなしで手動で時間差を計算する必要があります。&は非常に大量のログで24時間になっているかもしれません。これは、実際にフォーマットの権利日付細かい&リターンを作品elasticsearch-logstash時間差計算(ELK 5.3)

elasticsearch { 
       query => "Event:'Sent' AND ID:%{[ID]}" 
       index => "mylog*" 
       result_size => "1" 
       enable_sort => "false" 
       fields => { "@timestamp" => "SentTime" } 
     } 

: は、私は、古いログから開始時間を得ることができた「2017-03-29T22:00:03.000Z」

しかし、それはで悪い起こっている:この形式で 戻り値「1月18日1970、08:07:09.056」

ruby { 
      code => "event.set('[SecondsToDeliver]', event.get('@timestamp').to_f - event.get('SentTime').to_f)" 
      add_tag => [ "rubyfilter" ] 
     } 

は、私はそれは些細な構文エラーであると確信しているが、私はそれをキャッチするために管理することはできません。この数学によって解決

答えて

0

elasticsearch { 
         hosts => ["Your elastic host"] 
         query => 'Event:"Sent" AND ID:"%{ID}"' 
         fields => { "@timestamp" => "SentTime" } 
         tag_on_failure => [ "NoSent_ID" ] 
       } 

      date { 
       match => ["[SentTime]", "ISO8601"] 
       target => "[SentTime]" 
      } 
     ruby { 
        init => "require 'time'" 
        code => "duration = (event.get('@timestamp') - event.get('SentTime')) rescue nil; event.set('Log_duration', duration); " 
       }