Я хочу вычислить "event.start" из "event.end" и "event.duration", поэтому вычитание "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))
^
Спасибо за любую помощь.