Skip to content

Label regular expression filters misinterpreting backticks #16674

@kelnage

Description

@kelnage

Describe the bug
When executing a query that uses a regular expression label filter containing backticks (e.g., field =~ "`.`"), Loki appears to be attempting to mis-interpret those backticks as string delimiters and throws a syntax error. The same behaviour does not occur for line filters nor LogCLI, so it seems specific to how label filters are implemented.

To Reproduce
Steps to reproduce the behavior:

  1. Started Loki (4fa045d, latest 3.4.2)
  2. Query: {...} | logfmt | logger=~"`.`"
  3. Receive error message parse error at line 1, col X: syntax error: unexpected .

Expected behavior
The query to execute and bring back results matching the specified pattern.

Environment:

  • Infrastructure: both Grafana Cloud and in local testing
  • Deployment tool: Docker

Screenshots, Promtail config, or terminal output

Relevant log lines from Loki:

level=info ts=2025-03-11T09:35:29.682630247Z caller=roundtrip.go:359 org_id=fake traceID=6fcfefab593c73ce msg="executing query" type=range query="{job=\"dockerlogs\"} | logfmt | logger=~\"`.`\"" start=2025-03-11T08:35:29.675Z end=2025-03-11T09:35:29.675Z start_delta=1h0m0.007615607s end_delta=7.615697ms length=1h0m0s step=2000 query_hash=2935063436
level=info ts=2025-03-11T09:35:29.683320322Z caller=table_manager.go:195 index-store=tsdb-2024-12-23 msg="get or create table" found=true table=index_20158 wait_for_lock=1.228µs
level=info ts=2025-03-11T09:35:29.683478473Z caller=metrics.go:409 org_id=fake traceID=6fcfefab593c73ce latency=fast query_type=stats start=2025-03-11T08:34:59Z end=2025-03-11T09:35:29Z start_delta=1h0m30.683476493s end_delta=683.476653ms length=1h0m30s duration=219.91µs status=200 query="{job=\"dockerlogs\"}" query_hash=705154902 total_entries=1
level=info ts=2025-03-11T09:35:29.68416227Z caller=roundtrip.go:359 org_id=fake traceID=06a502a71024af24 msg="executing query" type=range query="sum by (level, detected_level) (count_over_time({job=\"dockerlogs\"} | logfmt | logger=~\"`.`\" | drop __error__[1m]))" start=2025-03-11T08:35:00Z end=2025-03-11T09:35:29.675Z start_delta=1h0m29.684160616s end_delta=9.160819ms length=1h0m29.675s step=60000 query_hash=1258716267
level=warn ts=2025-03-11T09:35:29.684552704Z caller=retry.go:125 org_id=fake traceID=6fcfefab593c73ce msg="received an error but not a retryable code, this is possibly a bug." code=Code(400) err="rpc error: code = Code(400) desc = parse error at line 1, col 41: syntax error: unexpected ."
level=info ts=2025-03-11T09:35:29.684893155Z caller=table_manager.go:195 index-store=tsdb-2024-12-23 msg="get or create table" found=true table=index_20158 wait_for_lock=1.88µs
level=info ts=2025-03-11T09:35:29.685123889Z caller=metrics.go:409 org_id=fake traceID=06a502a71024af24 latency=fast query_type=stats start=2025-03-11T08:34:00Z end=2025-03-11T09:36:00Z start_delta=1h1m29.685121996s end_delta=-30.314877764s length=1h2m0s duration=287.658µs status=200 query="{job=\"dockerlogs\"}" query_hash=705154902 total_entries=1
level=warn ts=2025-03-11T09:35:29.686617283Z caller=retry.go:125 org_id=fake traceID=06a502a71024af24 msg="received an error but not a retryable code, this is possibly a bug." code=Code(400) err="rpc error: code = Code(400) desc = parse error at line 1, col 87: syntax error: unexpected ."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions