Elasticsearch searching with perl client
Multiple filter clauses must be passed as separate JSON objects within an array (like in your initial JSON query), not multiple filters in the same JSON object. This maps to how you must create the Perl data structure.
filter => [ {term => { message => 'metrics' }}, {range => { timestamp => { 'gte' => 'now-15m' }}}]