mirror of
https://github.com/prometheus/prometheus.git
synced 2026-04-05 17:25:43 -04:00
QueryForStateSeries built Select matchers from the raw rule labels,
which can contain Go template expressions such as
`instance_{{ $labels.instance }}`. The stored ALERTS_FOR_STATE series
carry the per-instance evaluated values (e.g. `instance_0`), so the
unevaluated template string never matched, leaving seriesByLabels empty
and silently skipping restoration for every active alert.
Fix by omitting any label whose value contains `{{` from the matcher
list. Static labels (including `__name__` and `alertname`) are never
templated and continue to scope the query to the correct rule. The
in-memory lookup against evaluated alert labels that follows is
unaffected, so the single-query-per-rule optimisation introduced in
#13980 is fully preserved.
Fixes #16883
Ref #13980
Ref #18364
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
|
||
|---|---|---|
| .. | ||
| fixtures | ||
| alerting.go | ||
| alerting_test.go | ||
| group.go | ||
| group_test.go | ||
| manager.go | ||
| manager_test.go | ||
| origin.go | ||
| origin_test.go | ||
| recording.go | ||
| recording_test.go | ||
| rule.go | ||