code: func (gs *GRPCClient) AddServer(sv *Server) {
  	var host, port, portKey string
  	var ok bool
  
  	host, portKey = gs.getServerHost(sv)
  	if host == "" {
  		logger.Log.Errorf("server %s has no grpcHost specified in metadata", sv.ID)
  		return
  	}
  
  	if port, ok = sv.Metadata[portKey]; !ok {
  		logger.Log.Errorf("server %s has no %s specified in metadata", sv.ID, portKey)
  		return
  	}
  
  	address := fmt.Sprintf("%s:%s", host, port)
  	conn, err := grpc.Dial(address, grpc.WithInsecure())
  	if err != nil {
  		logger.Log.Errorf("unable to connect to server %s at %s: %v", sv.ID, address, err)
  		return
  	}
  	c := protos.NewPitayaClient(conn)
  	gs.clientMap.Store(sv.ID, c)
  	logger.Log.Debugf("[grpc client] added server %s at %s", sv.ID, address)
  }
docs: // AddServer is called when a new server is discovered