I am using Logstash 6.0.0
I am receiving metrics with different application Ids. How can I delete the application Id in the field name?
application_1512057801087_0235.driver.BlockManager.memory.maxMem_MB => driver.BlockManager.memory.maxMem_MB
I am using Logstash 6.0.0
I am receiving metrics with different application Ids. How can I delete the application Id in the field name?
application_1512057801087_0235.driver.BlockManager.memory.maxMem_MB => driver.BlockManager.memory.maxMem_MB
A quick solution would be some custom Ruby code, especially if you don't know the application id patterns beforehand, like
ruby {
code => "
event.set('fieldname', event.get('fieldname').split('.')[1..-1].join('.'))
"
}
It's kinda overkill, but it works (unless there are dots in the application id itself).
Ho w can I indicate that the ruby code applies only on field starting with "application_..."
filter {
if [type] == "spark" {
ruby {
code => "event.set('fieldname', event.get('fieldname').split('.')[1..-1].join('.')"
}
}
}
With a dynamic field name you'll have to iterate over all fields.
if event.to_hash.each { |k, v|
if k.start_with? 'application_'
event.set('application', v)
event.remove(k)
break
end
}
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
© 2020. All Rights Reserved - Elasticsearch
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant logo are trademarks of the Apache Software Foundation in the United States and/or other countries.