fix(logql): enforce fully-anchored label regex semantics to match Prometheus (#14433) #19811
+115
−9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
Align LogQL label/stream regex matchers with Prometheus semantics: regex patterns are treated as fully anchored (implicitly
^…$). This removes unintended substring matches in label filters, restoring the documented behavior. Line filters (|~,!~) remain substring-based and are unchanged.Which issue(s) this PR fixes:
Fixes #14433
Special notes for your reviewer:
test=~"1234"→ match;test=~"23.*"→ no match;test=~".*23"→ no match;test=~"12.*"→ match;test=~".*"→ match (no-op);test!~".*"→ no match.23.*,.*23),.*fast path and!~".*", half-anchors (^12,34$), and missing label semantics ("",".*",^$).- Issue: Regex label filter return wrong result #14433
- Docs (fully anchored label filters): https://grafana.com/docs/loki/latest/query/log_queries/
Checklist
CONTRIBUTING.mdguide (required)featPRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.docs/sources/setup/upgrade/_index.mddeprecated-config.yamlanddeleted-config.yamlfiles respectively in thetools/deprecated-config-checkerdirectory. Example PR