func()

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
}