2016-08-03 15 views
0

Ich möchte Hilfe mit dem Code in Ruby-Filter erhalten.Ruby-Code in Logstash mit _rubyexception fehlgeschlagen

logstash-Version ist 5.0.0 alpha4.

Ich teste den Code in Ruby-Filter wie unten, aber ich bekomme _rubyexception.

ruby { 
    code => " 
     event['newfield'] = 'test' 
    " 
    } 

Der Rubinfilter ist im Filter {} definiert. Die logstash.log zeigt, wie unten,

:timestamp=>"2016-08-03T15:26:47.291000+0900", :message=>"Ruby exception occurred: undefined method[]=' for 2016-08-03T06:26:46.829Z test %{message}:LogStash::Event", :level=>:error} 

Ich kann den Grund finden, warum Rubin Filter sind nicht in der Lage Ereignisobjekt zu verwenden. Ich schätze es, wenn ich Hilfe bekommen könnte, um dieses Problem zu lösen.

Danke, Yu

Antwort

5

Es gibt ein neues Ereignis API in Logstash 5.0.0 und jetzt müssen Sie Felder auf das Ereignis wie folgt festzulegen:

ruby { 
    code => " 
     event.set('newfield', 'test') 
    " 
    } 
+0

Arbeitete wie ein Charme! Vielen Dank! –

+0

Super, froh, dass es geholfen hat! – Val

+0

API: https://www.elastic.co/guide/en/logstash/5.x/event-api.html – drinor

1

Für den Wert von Feldnamen erhalten :

ruby { 
code => " 
value = (event.get('field_name')) 
    " 
}