Add test for same label set in targets

Signed-off-by: darshanime <deathbullet@gmail.com>
This commit is contained in:
darshanime 2024-01-26 12:23:50 +05:30
parent ad69899407
commit 49e6bdade5
2 changed files with 28 additions and 3 deletions

View file

@ -213,14 +213,13 @@ func (m *Manager) reload() {
if t, ok := activeTargets[target.labels.Hash()]; ok {
level.Warn(m.logger).Log(
"msg", "Found targets with same labels after relabelling",
"target", t.URL().String(),
"target", target.URL().String(),
"target", t.DiscoveredLabels().Get(model.AddressLabel),
"target", target.DiscoveredLabels().Get(model.AddressLabel),
)
}
activeTargets[target.labels.Hash()] = target
}
}
}
// setOffsetSeed calculates a global offsetSeed per server relying on extra label set.

View file

@ -622,6 +622,32 @@ func TestManagerTargetsUpdates(t *testing.T) {
}
}
func TestManagerDuplicateAfterRelabellingWarning(t *testing.T) {
var output []interface{}
logger := log.Logger(log.LoggerFunc(func(keyvals ...interface{}) error {
output = keyvals
return nil
}))
opts := Options{}
testRegistry := prometheus.NewRegistry()
m, err := NewManager(&opts, logger, nil, testRegistry)
require.NoError(t, err)
m.scrapePools = map[string]*scrapePool{}
sp := &scrapePool{
activeTargets: map[uint64]*Target{},
}
sp.activeTargets[uint64(0)] = &Target{discoveredLabels: labels.FromStrings("__address__", "foo")}
sp.activeTargets[uint64(1)] = &Target{discoveredLabels: labels.FromStrings("__address__", "bar")}
m.scrapePools["default"] = sp
m.reload()
require.Contains(t, output, "Found targets with same labels after relabelling")
require.Contains(t, output, "foo")
require.Contains(t, output, "bar")
}
func TestSetOffsetSeed(t *testing.T) {
getConfig := func(prometheus string) *config.Config {
cfgText := `