in internal/satellite/telemetry/metricservice/server.go [66:95]
func (s *Server) AfterSharingStart() error {
plugin := sharing.Manager[s.MetricsServiceConfig.ClientName]
if plugin == nil {
return fmt.Errorf("could not fould client %s", s.MetricsServiceConfig.ClientName)
}
grpcClient, ok := plugin.(client.Client)
if !ok {
return fmt.Errorf("the client is not grpc client")
}
conn := grpcClient.GetConnectedClient().(*grpc.ClientConn)
s.meterClient = v3.NewMeterReportServiceClient(conn)
go func() {
ticker := time.NewTicker(time.Duration(s.Interval) * time.Second)
for {
select {
case <-ticker.C:
if err := s.sendMetrics(); err != nil {
log.Logger.Warnf("send satellite metrics failure: %v", err)
}
case <-context.Background().Done():
return
case <-s.ctx.Done():
s.cancel()
return
}
}
}()
return nil
}