Come rimuovere i caratteri di sottolineatura nei nomi dei campi con logstash?

Sto pensando di usare il filtro mutate e l’opzione di rename , ma non conosco la regex corrispondente per ottenere ciò:

 filter { mutate { rename => { "any_field_with_underscore" => "anyfieldwithunderscore" # i don't know how to write regex for this ... } } } 

Qualcuno può aiutare?

Non ci sono indicazioni nel documento che rename{} prenda un’espressione regolare.

Ho visto questo fatto con un filtro ruby{} .

Come richiesto, ecco alcuni Ruby non testati :

 begin keys = event.to_hash.keys keys.each{|key| if ( key =~ /_/ ) newkey = key.gsub(/_/, '') event[newkey] = event.remove(key) end } rescue Exception => e event['logstash_ruby_exception'] = 'underscores: ' + e.message end 

Per build la risposta di Alain ,

In Logstash> = 5.x, viene applicata una funzione di accesso all’object evento:

  ruby { code => " begin keys = event.to_hash.keys keys.each{|key| if ( key =~ /http_/ ) newkey = key.gsub(/http_/, '') event.set(newkey, event.remove(key)) end } rescue Exception => e event.set('logstash_ruby_exception', 'underscores: ' + e.message) end " } } 

Vedi anche questa richiesta di funzionalità che farebbe lo stesso