From 009017a3fb0219b0da7e4e2823bee772de306ffc Mon Sep 17 00:00:00 2001 From: Julien Pivotto Date: Mon, 14 Aug 2023 23:28:23 +0200 Subject: [PATCH] Revert "Remove deleted target from discovery manager" Signed-off-by: Julien Pivotto --- discovery/legacymanager/manager.go | 7 +------ discovery/legacymanager/manager_test.go | 10 +++++++--- discovery/manager.go | 7 +------ discovery/manager_test.go | 15 +++++++++++++-- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/discovery/legacymanager/manager.go b/discovery/legacymanager/manager.go index e7c79a8f81..87823f4010 100644 --- a/discovery/legacymanager/manager.go +++ b/discovery/legacymanager/manager.go @@ -270,12 +270,7 @@ 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. - // 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 - } + m.targets[poolKey][tg.Source] = tg } } } diff --git a/discovery/legacymanager/manager_test.go b/discovery/legacymanager/manager_test.go index bc8a419ece..13b84e6e36 100644 --- a/discovery/legacymanager/manager_test.go +++ b/discovery/legacymanager/manager_test.go @@ -824,9 +824,13 @@ func TestTargetSetRecreatesEmptyStaticConfigs(t *testing.T) { if !ok { t.Fatalf("'%v' should be present in target groups", pkey) } - _, ok = targetGroups[""] - if ok { - t.Fatalf("Target groups should be empty, got %v", targetGroups) + 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)) } } diff --git a/discovery/manager.go b/discovery/manager.go index 7f06b423d0..8b304a0faf 100644 --- a/discovery/manager.go +++ b/discovery/manager.go @@ -387,12 +387,7 @@ 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. - // 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 - } + m.targets[poolKey][tg.Source] = tg } } } diff --git a/discovery/manager_test.go b/discovery/manager_test.go index 67ccbcac79..5371608112 100644 --- a/discovery/manager_test.go +++ b/discovery/manager_test.go @@ -1044,8 +1044,19 @@ func TestTargetSetRecreatesEmptyStaticConfigs(t *testing.T) { if !ok { t.Fatalf("'%v' should be present in target groups", p) } - require.Equal(t, 0, len(targetGroups)) - require.Equal(t, 0, len(syncedTargets)) + 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) + } } func TestIdenticalConfigurationsAreCoalesced(t *testing.T) {