in pkg/telemetry/telemetry.go [29:75]
func (c *Collector) Start(ctx context.Context, delay, sendEvery time.Duration) {
log := ctrl.Log.WithName("telemetry-collector")
go func() {
timeToSend := time.Now().Add(delay)
ticker := time.NewTicker(time.Second)
defer ticker.Stop()
for {
select {
case <-ctx.Done():
log.Info("Stop telemetry-metrics collector")
return
case now := <-ticker.C:
if timeToSend.Before(now) {
if err := c.sendTelemetry(ctx); err != nil {
log.Error(err, "Failed to send telemetry-metrics")
return
}
log.Info("Telemetry-metrics were sent")
return
}
}
}
}()
ticker := time.NewTicker(sendEvery)
defer ticker.Stop()
for {
select {
case <-ctx.Done():
log.Info("Stop telemetry-metrics collector")
return
case <-ticker.C:
if err := c.sendTelemetry(ctx); err != nil {
log.Error(err, "Failed to send telemetry-metrics")
break
}
log.Info("Telemetry-metrics were sent")
}
}
}