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


Reply via email to