Search code examples
jsonjmespathpromtail

PromTail JSON Scrape Special Character


For a PromTail scrape config, I am using a JSON stage.

I have a JSON log that looks like this:

{
   "@l": "info",
   "foo": "bar"
}

I am looking to use the JSON stage to extract the @l property into the map.

I tried this:

- json:
     expressions:
       level: '"@l"'
- labels:
     level:

The agent starts but no logs are scraped. If I remove the JSON stage, tons of logs come in.

What could I be doing wrong with the @ escape sequence?


Solution

  • I have confirmed. To escape a @ or ., you use double quotes.

    so examples:

    {
       "@l": "Debug",
       "foo.bar": "value"
    }
    

    '"@l"'

    or

    '"foo.bar"'

    Source

    Using a JMESPath Literal

    This pipeline uses a literal JMESPath expression to parse JSON fields with special characters in the name, like @ or .