Auto Field Detection in Logs

I can see that within Logstash there is already predefined grok patterns for firewall like Juniper.

So under what kind of situation should we use customized grok pattern and what kind of situation should we use the KV filter?