mirror of
https://github.com/prometheus/prometheus
synced 2026-04-30 23:11:34 +08:00
Send empty targetgroup if nothing discovered
Signed-off-by: Nick Triller <nicktriller@gmail.com>
This commit is contained in:
@@ -426,6 +426,15 @@ func (d *Discovery) watchServices(ctx context.Context, ch chan<- []*targetgroup.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Send targetgroup with no targets if nothing was discovered.
|
||||
if len(services) == 0 {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case ch <- []*targetgroup.Group{{}}:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// consulService contains data belonging to the same service.
|
||||
|
||||
@@ -298,6 +298,23 @@ func TestAllServices(t *testing.T) {
|
||||
<-ch
|
||||
}
|
||||
|
||||
// targetgroup with no targets is emitted if no services were discovered.
|
||||
func TestNoTargets(t *testing.T) {
|
||||
stub, config := newServer(t)
|
||||
defer stub.Close()
|
||||
config.ServiceTags = []string{"missing"}
|
||||
|
||||
d := newDiscovery(t, config)
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
ch := make(chan []*targetgroup.Group)
|
||||
go d.Run(ctx, ch)
|
||||
|
||||
targets := (<-ch)[0].Targets
|
||||
require.Equal(t, 0, len(targets))
|
||||
cancel()
|
||||
}
|
||||
|
||||
// Watch only the test service.
|
||||
func TestOneService(t *testing.T) {
|
||||
stub, config := newServer(t)
|
||||
|
||||
Reference in New Issue
Block a user