func()

in plugins/forwarder/grpc/nativemanagement/forwarder.go [76:106]


func (f *Forwarder) Forward(batch event.BatchEvents) error {
	pingOnce := make(map[string]void)
	for _, e := range batch {
		// report instance
		instanceProperties := e.GetInstance()
		if instanceProperties != nil {
			_, err := f.managementClient.ReportInstanceProperties(context.Background(), instanceProperties)
			if err != nil {
				return err
			}
			continue
		}

		// report instance ping
		instancePing := e.GetInstancePing()
		if instancePing != nil {
			// report once
			instancePingStr := fmt.Sprintf("%s_%s", instancePing.Service, instancePing.ServiceInstance)
			_, exists := pingOnce[instancePingStr]
			if !exists {
				_, err := f.managementClient.KeepAlive(context.Background(), instancePing)
				if err != nil {
					return err
				}
				pingOnce[instancePingStr] = empty
			}
			continue
		}
	}
	return nil
}