Logstash事件@timestamp调整

Logstash event @timestamp adjustment

我想从"event.end"和"event.duration"计算"event.start",所以减去"event.end"和"event.duration"

"event.end": "2019-10-15T07:34:14.000Z",

"event.duration":30,(秒)

之后,event.duration要转换成纳秒,即乘法*1000000000。

我看过使用 ruby 插件,但我的 ruby 知识是零。

我的第一次尝试是这样的:

if !([event.duration] == 0) {
    mutate  {
        add_field => {"event.end" => "%{@timestamp}" }
            }
            ruby {
#                   init => "require 'time'"
#                   code => "
#                           diff = event.get('start_date') - event.get('end_date')
#                           event.set('timediff') = diff;
#                           "
                        code => "event.set('event.duration', event.get('event.duration').to_i * 1000000000))"   
            }
        }

但是得到如下错误信息:

[2019-10-15T12:11:05,640][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SyntaxError) (ruby filter code):2: syntax error, unexpected ')'
 event.set('event.duration', event.get('event.duration').to_i * 1000000000)) 
                                                                           ^

感谢您的帮助。

event.set('event.duration', event.get('event.duration').to_i * 1000000000))

您有 2 个打开 ( 和 3 个关闭 ),这会导致 unexpected ')' 错误。只需删除编译器用 ^.

指示的最后一个右括号