From 78ba5e62a611ca50427352dc6362ffaedd6324eb Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Fri, 12 Jan 2018 13:58:23 +0000 Subject: [PATCH] few mote usefull comments --- discovery/manager.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/discovery/manager.go b/discovery/manager.go index 4e583dcdea..5bf8b26fa8 100644 --- a/discovery/manager.go +++ b/discovery/manager.go @@ -70,6 +70,8 @@ func NewManager(logger log.Logger) *Manager { } // Manager maintains a set of discovery providers and sends each update to a channel used by other packages. +// Targets are grouped by target set names. +// When a given target set doesn't include any targets the manager doesn't send any updates for this target set. type Manager struct { logger log.Logger actionCh chan func(context.Context) @@ -160,7 +162,7 @@ func (m *Manager) updateGroup(poolKey poolKey, tgs []*targetgroup.Group) { } for _, tg := range tgs { - if tg != nil { // Some Discoverers send nil targetgroup so need to check for it to avoid panics. + if tg != nil { // Some Discoverers send nil target group so need to check for it to avoid panics. if _, ok := m.targets[poolKey]; !ok { m.targets[poolKey] = make(map[string]*targetgroup.Group) } @@ -181,6 +183,8 @@ func (m *Manager) allGroups() map[string][]*targetgroup.Group { for pkey, tsets := range m.targets { del := true for _, tg := range tsets { + // Don't add a target set if the target group has no targets. + // This happens when a Discoverer sends an empty targets array for a group to indicate that these targets have been removed. if len(tg.Targets) != 0 { tSetsAll[pkey.setName] = append(tSetsAll[pkey.setName], tg) del = false