mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-09 23:24:05 -08:00
Send empty targetgroup if nothing discovered
Signed-off-by: Nick Triller <nicktriller@gmail.com>
This commit is contained in:
parent
f3b2d2a998
commit
fddf4918c0
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue