Caution

Grafana Agent has reached End-of-Life (EOL) on November 1, 2025. Agent is no longer receiving vendor support and will no longer receive security or bug fixes. Current users of Agent Static mode, Agent Flow mode, and Agent Operator should proceed with migrating to Grafana Alloy. If you have already migrated to Alloy, no further action is required. Read more about why we recommend migrating to Grafana Alloy.

Open source

json_path

The json_path function lookup values using jsonpath syntax.

The function expects two strings. The first string is the JSON string used look up values. The second string is the jsonpath expression.

json_path always returns a list of values. If the jsonpath expression does not match any values, an empty list is returned.

A common use case of json_path is to decode and filter the output of a local.file or remote.http component to a River value.

Remember to escape double quotes when passing JSON string literals to json_path.

For example, the JSON value {"key": "value"} is properly represented by the string "{\"key\": \"value\"}".

Examples

> json_path("{\"key\": \"value\"}", ".key")
["value"]


> json_path("[{\"name\": \"Department\",\"value\": \"IT\"},{\"name\":\"TestStatus\",\"value\":\"Pending\"}]", "[?(@.name == \"Department\")].value")
["IT"]

> json_path("{\"key\": \"value\"}", ".nonexists")
[]

> json_path("{\"key\": \"value\"}", ".key")[0]
value