backfill: Apply rule labels after query labels

Fix #9419

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
This commit is contained in:
Julien Pivotto 2021-09-30 23:15:36 +02:00 committed by Julien Pivotto
parent a18224d02d
commit f8372bc6b9
1 changed files with 7 additions and 1 deletions

View File

@ -147,12 +147,18 @@ func (importer *ruleImporter) importRule(ctx context.Context, ruleExpr, ruleName
matrix = val.(model.Matrix) matrix = val.(model.Matrix)
for _, sample := range matrix { for _, sample := range matrix {
lb := labels.NewBuilder(ruleLabels) lb := labels.NewBuilder(labels.Labels{})
for name, value := range sample.Metric { for name, value := range sample.Metric {
lb.Set(string(name), string(value)) lb.Set(string(name), string(value))
} }
// Setting the rule labels after the output of the query,
// so they can override query output.
for _, l := range ruleLabels {
lb.Set(l.Name, l.Value)
}
lb.Set(labels.MetricName, ruleName) lb.Set(labels.MetricName, ruleName)
for _, value := range sample.Values { for _, value := range sample.Values {