• Icon: New Feature New Feature
    • Resolution: Unresolved
    • Icon: Major Major
    • blueocean-plugin
    • None

      I had discussed this with jamesdumay at Jenkins World 2017 so opening this to summarize.

      A few weeks ago, there was the following conversation on IRC that had some popularity(attached). TL;DR it would be cool to have a reactor/dashboard type view for a TV monitor. 

      Two approaches I had thought of was to:

      1. Service Accounts/Users in Jenkins. Right now, the blueocean jobs that are starred are for a particular user. There could be something like a 'tv user' account (which would theoretically be equivalent to a user with read-only permissions as assigned in the permissions matrix, where an organization can login to their 'tv user' account and display that on a screen, rather than someone's actual account. (This requires no real code change, it would just be an advertised use-case)
      2. Widget based drag-and-drop WYSIWYG type of interface. With the new work on Trends that I recently saw on Twitter, it might be useful to not only make these charts specific for a job but rather make it available on a dashboard view. This would look something like the crude cut and paste of the Trend video I attached . What I am trying to display here is a sample dashboard where I have selected a few jobs I care about knowing the status of, and then 3 different time series graphs of jobs/builds I am knowingly trying to optimize as a long term project, or just runtimes I care about for lengthier regression tests. I can call out all these useful pieces of information to look at without having to build the job (if I have Github hooks configured), nor search through builds to check their runtimes and/or trends. 

      Unfortunately, I am not much of a designer so I don't know how clear I am with all of this but I am sure someone on the team could turn this idea into something real. 

        1. testngchart.jpg
          testngchart.jpg
          72 kB
        2. Screen Shot 2017-09-22 at 3.23.24 pm.png
          Screen Shot 2017-09-22 at 3.23.24 pm.png
          797 kB
        3. Sample Dash.jpeg
          Sample Dash.jpeg
          123 kB
        4. IMG_20170926_114347.jpg
          IMG_20170926_114347.jpg
          3.36 MB
        5. dashing.png
          dashing.png
          267 kB
        6. BlueOceanReactorChat.jpg
          BlueOceanReactorChat.jpg
          197 kB

          [JENKINS-46780] Wallboard for Blue Ocean

          Alvin Huang created issue -
          Michael Neale made changes -
          Epic Link New: JENKINS-35755 [ 171716 ]
          Michael Neale made changes -
          Priority Original: Minor [ 4 ] New: Major [ 3 ]
          Michael Neale made changes -
          Sprint New: Blue Ocean 1.4 [ 311 ]
          Michael Neale made changes -
          Summary Original: Reactor/Dashboard for Blue Ocean New: Wallboard for Blue Ocean

          Michael Neale added a comment -

          In terms of functionality how close are plugins like: https://wiki.jenkins.io/display/JENKINS/Build+Monitor+Plugin to this - in terms of the end user experience? Want something different building on blue ocean UI elements? (I have more thoughts  on this, but just wanted to point that out for now). 

          Michael Neale added a comment - In terms of functionality how close are plugins like: https://wiki.jenkins.io/display/JENKINS/Build+Monitor+Plugin  to this - in terms of the end user experience? Want something different building on blue ocean UI elements? (I have more thoughts  on this, but just wanted to point that out for now). 

          Alvin Huang added a comment -

          I haven't personally used that plugin like the person who suggested it on IRC. From looking at the screenshots on the plugin page though, it seems to show the latest build, build status (progress bar), and green/red for success/failure. All of this can currently be visualized on the blue ocean dashboard. 

          If dashboards can be built arbitrarily and saved either with a sidebar link or in a view like the Build Monitor Plugin, we have basically replicated the functionality. 

          Currently, the jobs in the blue ocean dashboard are favorited and saved per Jenkins account, right? Would it be useful to add permissions to the matrix based authorization to restrict certain users/roles from seeing dashboards of other user/service accounts? Or would this be unnecessary? I know in our org no one will care that you are looking at their teams dashboard as long as you can't rerun the job or delete it. 

          Another thought would just be to make another tab in the Blue Ocean interface (next to Pipelines and Administration) for 'Dashboard' or 'Wallboard.' Where I can fill out a form similar to how you would create a new pipeline in blue ocean, add a regex of the jobs I care about or pick from a list, and then save it. Then a user can click the Tab and it would drop down:

          Dashboard ▼

          • App1 Dashboard
          • App2 Dashboard
          • Alvin's Dashboard
          • Create a New Dashboard

          Where all the dashboards are read-only and if I have am seeing an issue with App1, I can quickly look at their dashboard to see if their build job recently ran and put a new build in dev, or if their deploy job recently ran because they have pushed something new to prod.

          I don't know how to mock this up but if anyone prefers, I can hop on Hangouts and walk through my ideas.

          Alvin Huang added a comment - I haven't personally used that plugin like the person who suggested it on IRC. From looking at the screenshots on the plugin page though, it seems to show the latest build, build status (progress bar), and green/red for success/failure. All of this can currently be visualized on the blue ocean dashboard.  If dashboards can be built arbitrarily and saved either with a sidebar link or in a view like the Build Monitor Plugin, we have basically replicated the functionality.  Currently, the jobs in the blue ocean dashboard are favorited and saved per Jenkins account, right? Would it be useful to add permissions to the matrix based authorization to restrict certain users/roles from seeing dashboards of other user/service accounts? Or would this be unnecessary? I know in our org no one will care that you are looking at their teams dashboard as long as you can't rerun the job or delete it.  Another thought would just be to make another tab in the Blue Ocean interface (next to Pipelines and Administration) for 'Dashboard' or 'Wallboard.' Where I can fill out a form similar to how you would create a new pipeline in blue ocean, add a regex of the jobs I care about or pick from a list, and then save it. Then a user can click the Tab and it would drop down: Dashboard ▼ App1 Dashboard App2 Dashboard Alvin's Dashboard Create a New Dashboard Where all the dashboards are read-only and if I have am seeing an issue with App1, I can quickly look at their dashboard to see if their build job recently ran and put a new build in dev, or if their deploy job recently ran because they have pushed something new to prod. I don't know how to mock this up but if anyone prefers, I can hop on Hangouts and walk through my ideas.

          Michael Neale added a comment -

          ahuang I think for wallboards, they are often run on an monitor via some shared computer, not a personal login (that can time out). 

          My preference was that the wallboard was a discrete feature, that provides a read only URL you can throw up on a monitor (with some token that grants it read access). So you are thinking that you like the look of the favourite cards? that is the primary visualisation? or woudl there also be a need for the pipeline graph visualisation on a wallboard?

          Michael Neale added a comment - ahuang I think for wallboards, they are often run on an monitor via some shared computer, not a personal login (that can time out).  My preference was that the wallboard was a discrete feature, that provides a read only URL you can throw up on a monitor (with some token that grants it read access). So you are thinking that you like the look of the favourite cards? that is the primary visualisation? or woudl there also be a need for the pipeline graph visualisation on a wallboard?

          Alvin Huang added a comment - - edited

          The read-only URL sounds good to me. I was just thinking it could be quick link on the sidebar for someone to click:

          App1 Status

          App2 Status

          App3 Status

          And quickly see how the builds are doing or when a new deploy job ran across a particular team/app. Or maybe a /wallboard endpoint where all the prebuilt dashboards you have created live and you just pick one.

           

          I don't have a preference for the cards. The primary widget pieces I can think of so far are just the normal job status bar like blueocean shows now, pipeline graphs, or trends/metrics. And a user can either

          • drag and drop (snap to grid) to the dashboard to their desired layout 
          • or you can give them a drop down menu of selectors and blue ocean will decide how to best lay it out with/without the ability to rearrange

          As far as the pipeline graph goes, I think that might be too detailed for a wallboard. If you have parallel stages or many serial stages, that graph can get quite large and may take up too much real estate. Maybe for one or two jobs the pipeline graph is OK but if you have more than that I would prefer the current blue ocean job list. That way, I can quickly scan the 'Status' column and login myself to check the pipeline graph and see more detailed of that particular job/run. 

          Alvin Huang added a comment - - edited The read-only URL sounds good to me. I was just thinking it could be quick link on the sidebar for someone to click: App1 Status App2 Status App3 Status And quickly see how the builds are doing or when a new deploy job ran across a particular team/app. Or maybe a /wallboard endpoint where all the prebuilt dashboards you have created live and you just pick one.   I don't have a preference for the cards. The primary widget pieces I can think of so far are just the normal job status bar like blueocean shows now, pipeline graphs, or trends/metrics. And a user can either drag and drop (snap to grid) to the dashboard to their desired layout  or you can give them a drop down menu of selectors and blue ocean will decide how to best lay it out with/without the ability to rearrange As far as the pipeline graph goes, I think that might be too detailed for a wallboard. If you have parallel stages or many serial stages, that graph can get quite large and may take up too much real estate. Maybe for one or two jobs the pipeline graph is OK but if you have more than that I would prefer the current blue ocean job list. That way, I can quickly scan the 'Status' column and login myself to check the pipeline graph and see more detailed of that particular job/run. 

          Michael Neale added a comment -

          ahuang that is a good point about a graph being too detailed, that simplifies it somewhat in that case. 

          I suppose next step is to copy/paste some things into a draft design

          Michael Neale added a comment - ahuang that is a good point about a graph being too detailed, that simplifies it somewhat in that case.  I suppose next step is to copy/paste some things into a draft design

            Unassigned Unassigned
            ahuang Alvin Huang
            Votes:
            7 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated: