I don't think they would be reusable as is without any changes externally as the application context would not be available. Also externally you would want to have a different kind of application that aggregates across multiple applications.
Thanks On Thu, Jun 14, 2018 at 10:24 AM Vlad Rozov <vro...@apache.org> wrote: > If it is a set of static files that use existing REST API to display > information in a browser, where they will be hosted is irrelevant. They > can be hosted by stram, but it should be possible to host them > externally without making modificaitons. If this is the case, I don't > have any objections to the proposal. > > Thank you, > > Vlad > > On 6/13/18 06:09, Chinmay Kolhatkar wrote: > > Hi Team, > > > > I agree with Thomas. The main focus of this proposal was to provide a UI > > layer using existing REST APIs. > > I think we should first focus on providing a meaningful UI served by AM > to > > user using the same existing REST APIs. > > > > If in general, there is a agreement for the proposal, I can proceed with > > creating a JIRA and feature branch for the same. > > > > Thanks, > > Chinmay. > > > > > > On Wed, Jun 13, 2018 at 12:21 AM Thomas Weise <t...@apache.org> wrote: > > > >> Looks like there is some disconnect in this thread, a few replies > express > >> concerns that the proposal IMO doesn't imply. > >> > >> There is already a REST API that backs all of the CLI functionality. > Modern > >> UIs run in the browser, and so what was proposed (unless I > misunderstood) > >> would be based on the same REST API and nothing extra. The only > additional > >> thing the AM has to do is serve static files. And AFAIK it would > actually > >> simplify the UI implementation when files and REST API have the same > >> origin. > >> > >> To me where files are coming from is actually a smaller piece and > something > >> that can be augmented. But before proposing solutions outside of Apex or > >> additional deployment requirements, please consider the user > experience. It > >> should be really simple to setup and use the UI. > >> > >> I would expect that a large part of the discussion evolves around the UI > >> functionality that helps the target persona. > >> > >> Thanks, > >> Thomas > >> > >> On Tue, Jun 12, 2018, 8:05 PM Shubhrajyoti Mohapatra < > >> sjmohapat...@gmail.com> > >> wrote: > >> > >>> Hi Community, > >>> > >>> I would like to propose a slightly different approach on having an UI > for > >>> Apex. > >>> > >>> The details are below: > >>> > >>> 1. This involves having an external web-server installed along > side of > >>> apexCli. We will basically mimic all the functionalities that > apexCli > >>> currently provides. > >>> 2. We will develop the necessary REST APIs for fetch/update > operations > >>> which apexCli currently supports. > >>> 3. Because most of the information and operations needed by a > typical > >>> user are already there in apexCli, it will of great help to end > users > >>> and > >>> which may increase the adoption rate. > >>> > >>> About Chinmay's proposal of having the STRAM hosting the apps, please > >> find > >>> my comments below: > >>> > >>> 1. It may increase load on STRAM if we were to provide real time > >> display > >>> of information. I am aware that apexCli fetches info from STRAM > apis > >> but > >>> continuous polling can cause extra over-head. > >>> 2. The UI will have limited scope for the particular application. > >> Users > >>> would definitely love to have a comprehensive UI for the > management of > >>> Apex > >>> Apps as a whole. > >>> 3. UI might be able to affect the whole application through STRAM > >> hence > >>> giving direct access to STRAM APIs might not be good idea. > >>> 4. Because STRAM can't have a comprehensive UI hosted inside, > anyways > >> we > >>> will have to develop an external one. > >>> > >>> So I would like propose the plan on action like this. > >>> > >>> 1. We develop the wrapper UI for apexCli in the first phase and > give > >>> user all the management options as REST APIs. > >>> 2. If some of information we require are not in the current apexCli > >>> implementation, we can add those feature to apexCli and if > required to > >>> STRAM APIs in subsequent phases. > >>> 3. In future we can even remove the REST server from STRAM if we > could > >>> provide something like MetricsStore functionality which was there > in > >>> DataTorrent RTS. > >>> > >>> -- > >>> Thanks and Regards, > >>> Shubhrajyoti Mohapatra > >>> > >>> > >>> > >>> > >>> On Tue, Jun 12, 2018 at 2:49 AM Vlad Rozov <vro...@apache.org> wrote: > >>> > >>>> IMO it will be hard to provide UI that meets everyone expectation. An > >>>> external webUI can serve two goals > >>>> > >>>> 1. provide reference UI implementation > >>>> 2. ensure that REST API have all necessary entry points > >>>> > >>>> by embedding webUI directly into stram it will be tempting to shortcut > >>>> some calls to use stram classes directly. > >>>> > >>>> Thank you, > >>>> > >>>> Vlad > >>>> > >>>> On 6/11/18 12:18, Pramod Immaneni wrote: > >>>>> I too think that a comprehensive UI works better standalone but given > >>>> that > >>>>> stram already runs a webapp server, provides web services and RM > >>>> provides a > >>>>> proxy with mapped url space for it, we can extend stram to provide > >>> better > >>>>> visual output. Overall I am +1 on the idea. > >>>>> > >>>>> On Mon, Jun 11, 2018 at 8:59 AM Vlad Rozov <vro...@apache.org> > >> wrote: > >>>>>> Clarification: I am -0 on making UI part of the stram. I am +1 on > >>>>>> providing reference webUI application outside of the stram. > >>>>>> > >>>>>> Thank you, > >>>>>> > >>>>>> Vlad > >>>>>> > >>>>>> On 6/9/18 07:05, Vlad Rozov wrote: > >>>>>>> -0: stram provides REST API to query runtime information and IMO > >> this > >>>>>>> is sufficient to build an external webUI application(s). > >>>>>>> > >>>>>>> Thank you, > >>>>>>> > >>>>>>> Vlad > >>>>>>> > >>>>>>> On 6/6/18 11:17, Ambarish Pande wrote: > >>>>>>>> +1 For this feature. It would be really helpfull for users to > >>>>>>>> visualize all > >>>>>>>> this information and the DAG. > >>>>>>>> > >>>>>>>> +1 for ReactJS + MaterialUI > >>>>>>>> A great choice, given its flexibility and performance. > >>>>>>>> > >>>>>>>> I would like to contribute to this effort. > >>>>>>>> > >>>>>>>> On Wed, 6 Jun 2018 at 8:13 PM, Chinmay Kolhatkar < > >>> chin...@apache.org> > >>>>>>>> wrote: > >>>>>>>> > >>>>>>>>> Hi Community, > >>>>>>>>> > >>>>>>>>> I want to propose a feature in apex-core to have a UI component > >> in > >>>>>>>>> stram. > >>>>>>>>> This is influenced by how basic runtime information is shown on > >> UI > >>> by > >>>>>>>>> spark. > >>>>>>>>> > >>>>>>>>> This includes following features: > >>>>>>>>> 1. Webpage will be hosted by stram and will be available for user > >>> to > >>>>>>>>> view > >>>>>>>>> in one of the two ways (I'll prefer approach b): > >>>>>>>>> a. Hosted on a static port in which case we'll need to add > a > >>> new > >>>>>>>>> servlet > >>>>>>>>> to stram > >>>>>>>>> b. The webpage will be hosted on the same port as that of > >>> stram > >>>>>>>>> webservice but at a different path. Say, http:// > >>>>>>>>> <stram_host>:<webservice_port>/ui > >>>>>>>>> > >>>>>>>>> 2. The webpage will be a static page and depending on the > >> framework > >>>> we > >>>>>>>>> chose, it can show the realtime metric data from stram. > >>>>>>>>> > >>>>>>>>> 3. There will be a categories of readonly information (maybe > >>>>>>>>> dynamically > >>>>>>>>> changing) that will be shown on the UI: > >>>>>>>>> a. Application level information > >>>>>>>>> i. Status > >>>>>>>>> ii. Number of tuples processed/emitted > >>>>>>>>> iii. Start time/ Running span > >>>>>>>>> iv. Stram events > >>>>>>>>> v. Total memory used/available > >>>>>>>>> vi. Number of container allocated/deployed > >>>>>>>>> v. Other information which is available in stram > >>>>>>>>> b. Logical Operator level information > >>>>>>>>> i. Status > >>>>>>>>> ii. Number of tuples processed/emitted > >>>>>>>>> iii. Important events related to logical operator > >>>>>>>>> iv. Container list in which the operator is deployed > >>>>>>>>> v. Any other information available in stram > >>>>>>>>> vi. Logical DAG View > >>>>>>>>> c. Container level information > >>>>>>>>> i. Status > >>>>>>>>> ii. Number of tuples processed/emitted > >>>>>>>>> iii. Important events related to logical operator > >>>>>>>>> iv. Any other information available in stram > >>>>>>>>> v. Physical DAG View > >>>>>>>>> > >>>>>>>>> 4. In second phase, there will be control related operations > >>> allowed > >>>>>>>>> from > >>>>>>>>> the UI, as follows: > >>>>>>>>> a. Stop/Kill application > >>>>>>>>> b. Stop/Kill containers > >>>>>>>>> c. Stack trace dump of containers > >>>>>>>>> d. Logs related? > >>>>>>>>> d. etc...?? > >>>>>>>>> > >>>>>>>>> The above implementation can be done in phases as follows: > >>>>>>>>> 1. Have webpage display application level information only > >>>> (read-only). > >>>>>>>>> Static display first (i.e. page needs to refresh to see latest > >>>>>>>>> data), next > >>>>>>>>> dynamically changing data. > >>>>>>>>> 2. Have jenkins build tools updated as needed by UI framework. > >>>>>>>>> 3. Update the backend (stram) to serve the UI pages > >>>>>>>>> 3. Extend the webage to display logical operator information. > >>>>>>>>> 4. Extend the webage to display physical operator information > >>>>>>>>> 5. Implement control operations on UI. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> To implement above functionality, I propose ReactJS as UI > >> framework > >>>> and > >>>>>>>>> MaterialUI (based on Google's material design) for > >>> theme/controls/CSS > >>>>>>>>> support. > >>>>>>>>> > >>>>>>>>> Please let me know what you think about the same. > >>>>>>>>> > >>>>>>>>> Also, please let know if anyone is interested in contributing to > >>> this > >>>>>>>>> feature. > >>>>>>>>> > >>>>>>>>> Thanks, > >>>>>>>>> Chinmay. > >>>>>>>>> > >>>> > >