ruby {
        code => "
            event.get('db_user_details').each_index do |i|
                if [db_user_details][i][country] == "india"
                	event.set('flagger', 'done')
                end
            end
            "
        }
    }
 
here i want array iteration , is this correct
             
            
               
               
              1 Like 
            
                
            
           
          
            
            
              No,
            if [db_user_details][i][country] == "india"
 
isn't valid Ruby (you need to use event.get()). Why use each_index in the first place? Try this
event.get('db_user_details').each do |item|
  if item['country'] == 'india'
    event.set('flagger', 'done')
  end
end
 
             
            
               
               
               
            
                
            
           
          
            
            
              [2018-06-26T19:57:15,132][FATAL][logstash.runner          ] The given configuration is invalid. Reason: Expected one of #, {, } at line 22, column 30 (byte 602) after filter {
  jdbc_streaming {
    jdbc_driver_library => "C:\Users\TCML\Desktop\keycloak - iac\postgresql-9.4-1202.jdbc4.jar"
    jdbc_driver_class => "org.postgresql.Driver"
    jdbc_connection_string => "jdbc:postgresql://localhost:5432/example"
    jdbc_user => "postgres"
    jdbc_password => "root"
    statement => "SELECT country from user_deatils"
    target => "db_user_details"
    cache_expiration => 1800
  }
        mutate{
                add_field => {"flagger" => "def"}
        }
        ruby {
        code => "
            event.get('db_user_details').each do |item|
                                if item['country'] == "
[2018-06-26T19:57:15,143][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: org.jruby.exceptions.RaiseException: 
 
@magnusbaeck  i am getting like this please help this
             
            
               
               
               
            
            
           
          
            
            
              @magnusbaeck  this is my configuration but i am getting error at the ruby code please help me
input {
  stdin{}
}
filter {
  jdbc_streaming {
    jdbc_driver_library => "C:\Users\TCML\Desktop\keycloak - iac\postgresql-9.4-1202.jdbc4.jar"
    jdbc_driver_class => "org.postgresql.Driver"
    jdbc_connection_string => "jdbc:postgresql://localhost:5432/example"
    jdbc_user => "postgres"
    jdbc_password => "root"
    statement => "SELECT country from user_deatils"
    target => "db_user_details"
    cache_expiration => 1800
  }
  	mutate{
		add_field => {"flagger" => "def"}
	}
	ruby {
        code => '
            event.get('db_user_details').each do |item|
  				if item['country'] == "india"
    				event.set('flagger', 'done')
  				end
			end
            '
        }
    }
}
output{
	stdout{ codec => rubydebug }
} 
             
            
               
               
              1 Like 
            
            
           
          
            
            
              Don't use double quotes inside a double-quoted string. I've updated my suggestion above.
             
            
               
               
               
            
            
           
          
            
            
              thank you, but the field flagger is not updating
             
            
               
               
               
            
            
           
          
            
            
              { 
"message" => "\r", 
"@timestamp " => 2018-06-26T14:55:15.552Z,
"flagger" => "def",
 
"@version " => "1", 
"host" => "Eshwar", 
"db_user_details" => [ 
[0] { 
"country" => "india                                             " 
}, 
[1] { 
"country" => "pakisatn                                          " 
}, 
[2] { 
"country" => "india                                             " 
}, 
[3] { 
"country" => "india                                             " 
} 
] 
}
where ever india is there it must have flagger for them
             
            
               
               
               
            
            
           
          
            
              
                system  
                (system)
                  Closed 
               
              
                  
                    July 24, 2018,  2:57pm
                   
                   
              8 
               
             
            
              This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.