Merge pull request #12541 from haleyao/main

Remove deleted target from discovery manager
This commit is contained in:
Julien Pivotto 2023-08-14 15:37:59 +02:00 committed by GitHub
commit 103b8567d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 22 deletions

View file

@ -270,7 +270,12 @@ func (m *Manager) updateGroup(poolKey poolKey, tgs []*targetgroup.Group) {
}
for _, tg := range tgs {
if tg != nil { // Some Discoverers send nil target group so need to check for it to avoid panics.
m.targets[poolKey][tg.Source] = tg
// Remove the deleted target.
if len(tg.Targets) == 0 && len(tg.Labels) == 0 {
delete(m.targets[poolKey], tg.Source)
} else {
m.targets[poolKey][tg.Source] = tg
}
}
}
}

View file

@ -824,13 +824,9 @@ func TestTargetSetRecreatesEmptyStaticConfigs(t *testing.T) {
if !ok {
t.Fatalf("'%v' should be present in target groups", pkey)
}
group, ok := targetGroups[""]
if !ok {
t.Fatalf("missing '' key in target groups %v", targetGroups)
}
if len(group.Targets) != 0 {
t.Fatalf("Invalid number of targets: expected 0, got %d", len(group.Targets))
_, ok = targetGroups[""]
if ok {
t.Fatalf("Target groups should be empty, got %v", targetGroups)
}
}

View file

@ -387,7 +387,12 @@ func (m *Manager) updateGroup(poolKey poolKey, tgs []*targetgroup.Group) {
}
for _, tg := range tgs {
if tg != nil { // Some Discoverers send nil target group so need to check for it to avoid panics.
m.targets[poolKey][tg.Source] = tg
// Remove the deleted target.
if len(tg.Targets) == 0 && len(tg.Labels) == 0 {
delete(m.targets[poolKey], tg.Source)
} else {
m.targets[poolKey][tg.Source] = tg
}
}
}
}

View file

@ -1044,19 +1044,8 @@ func TestTargetSetRecreatesEmptyStaticConfigs(t *testing.T) {
if !ok {
t.Fatalf("'%v' should be present in target groups", p)
}
group, ok := targetGroups[""]
if !ok {
t.Fatalf("missing '' key in target groups %v", targetGroups)
}
if len(group.Targets) != 0 {
t.Fatalf("Invalid number of targets: expected 0, got %d", len(group.Targets))
}
require.Equal(t, 1, len(syncedTargets))
require.Equal(t, 1, len(syncedTargets["prometheus"]))
if lbls := syncedTargets["prometheus"][0].Labels; lbls != nil {
t.Fatalf("Unexpected Group: expected nil Labels, got %v", lbls)
}
require.Equal(t, 0, len(targetGroups))
require.Equal(t, 0, len(syncedTargets))
}
func TestIdenticalConfigurationsAreCoalesced(t *testing.T) {