For example, supposing your input message is
{
"result": [
{
"made_sla": "true",
"Type": "incident resolution p3",
"sys_updated_on": "2019-12-23 05:00:00",
"number": "INC0010275",
"category": "Network"
},
{
"made_sla": "true",
"Type": "incident resolution l1.5 p4",
"sys_updated_on": "2019-12-24 07:00:00",
"number": "INC0010567",
"category": "DB"
}
]
}
This configuration:
filter {
json {
source => "message"
}
ruby {
code => "
jsons = event.get('result')
jsons.map do |j|
j['sla_type'] = 'Response' if j['Type'].match(/response/i)
j['sla_type'] = 'Resolution' if j['Type'].match(/resolution/i)
end
event.set('result', jsons)
"
}
}
Would give you this output:
{
"result": [
{
"category": "Network",
"number": "INC0010275",
"sys_updated_on": "2019-12-23 05:00:00",
"made_sla": "true",
"Type": "incident response p3",
"sla_type": "Response"
},
{
"category": "DB",
"number": "INC0010567",
"sys_updated_on": "2019-12-24 07:00:00",
"made_sla": "true",
"Type": "incident resolution l1.5 p4",
"sla_type": "Resolution"
}
],
"message": "{\"result\": [{\"made_sla\": \"true\",\"Type\": \"incident response p3\",\"sys_updated_on\": \"2019-12-23 05:00:00\",\"number\": \"INC0010275\",\"category\": \"Network\"},{\"made_sla\": \"true\",\"Type\": \"incident resolution l1.5 p4\",\"sys_updated_on\": \"2019-12-24 07:00:00\",\"number\": \"INC0010567\",\"category\": \"DB\"}]}",
"@timestamp": "2020-01-16T15:05:35.878Z",
"@version": "1"
}