in pkg/discovery/discovery.go [67:84]
func (d *discovery) Run(ctx context.Context, ch chan<- []*targetgroup.Group) {
level.Info(d.logger).Log("msg", "Inside Run", "refreshInterval", d.refreshInterval)
for c := time.Tick(d.refreshInterval); ; {
tgs, err := d.refresh(ctx)
if err != nil {
level.Error(d.logger).Log("msg", "Error in refresh loop", "err", err)
} else {
ch <- tgs
}
// Wait for ticker or exit when ctx is closed.
select {
case <-c:
continue
case <-ctx.Done():
return
}
}
}