+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. >