Merge pull request #17807 from bboreham/fix-scrape-relabel-drop

Release 3.9: Fix scrape relabel not dropping series
This commit is contained in:
Bryan Boreham 2026-01-07 15:43:28 +00:00 committed by GitHub
commit 4caa4c0914
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 47 additions and 1 deletions

View File

@ -716,7 +716,9 @@ func mutateSampleLabels(lset labels.Labels, target *Target, honor bool, rc []*re
}
}
relabel.ProcessBuilder(lb, rc...)
if keep := relabel.ProcessBuilder(lb, rc...); !keep {
return labels.EmptyLabels()
}
return lb.Labels()
}

View File

@ -5982,3 +5982,47 @@ func TestScrapeLoopDisableStalenessMarkerInjection(t *testing.T) {
}
}
}
func TestDropsSeriesFromRelabeling(t *testing.T) {
s := teststorage.New(t)
defer s.Close()
ctx := t.Context()
target := &Target{}
relabelConfig := []*relabel.Config{
{
SourceLabels: model.LabelNames{"__name__"},
Regex: relabel.MustNewRegexp(".*_total$"),
Action: relabel.Keep,
},
{
SourceLabels: model.LabelNames{"__name__"},
Regex: relabel.MustNewRegexp("test_metric_2_total$"),
Action: relabel.Drop,
},
}
metricsText := []byte(`
# HELP test_metric_1_total This is a counter
# TYPE test_metric_1_total counter
test_metric_1_total 123
# HELP test_metric_2_total This is a counter
# TYPE test_metric_2_total counter
test_metric_2_total 234
# HELP disk_usage_bytes This is a gauge
# TYPE disk_usage_bytes gauge
disk_usage_bytes 456
`)
sl := newBasicScrapeLoop(t, ctx, &testScraper{}, s.Appender, 0)
sl.sampleMutator = func(l labels.Labels) labels.Labels {
return mutateSampleLabels(l, target, true, relabelConfig)
}
slApp := sl.appender(ctx)
total, added, seriesAdded, err := sl.append(slApp, metricsText, "text/plain", time.Time{})
require.NoError(t, err)
require.NoError(t, slApp.Rollback())
require.Equal(t, 3, total)
require.Equal(t, 1, added)
require.Equal(t, 1, seriesAdded)
}