'logstash kv filter cannot convert strings to integers

I have a log with a format similar to:

stage_name=stage1
stage_duration=30
stage_result=failed

The problem is I am using this parser on multiple log files with each basically containing numerous kv pairs.

Is there a way to recognize when values are integers and cast them as such without having to use mutate on every single key value pair? (Rather than a string)

i found that using ruby will might solve my issue by i need to understand how to replace the ' ' = space with /n = next row

input {
    stdin {}
}

filter {
    ruby {
        code => "
            fieldArray = event['message'].split(' ');
            for field in fieldArray
                name = field.split('=')[0];
                value = field.split('=')[1];
                if value =~ /\A\d+\Z/
                    event[name] = value.to_i
                else
                    event[name] = value
                end
            end
        "
    }
}
output {
    stdout { codec => rubydebug }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source