Hey Samuel, Yes, initially I started to use Stage View's REST API as a source. But... It's a HAL and doesn't use or provide a way to use embedded HAL resources. It means that I will have to make a lot of queries to load all the data I want. Also, there were some missing parts of the data as well.
Also, in fact, I consume standard API provided by FlowNodes, I'm just exposing some fields which are not exposed with Stapler, and if that annotations will be added + new Stapler (with class support) supported then Pipeline View will consume standard REST API of the Jenkins without any additional API at all, at least at this moment. Of course, we can collaborate and improve API of Stage View to make it consumable by Pipeline View as well. BR, Sergei On Fri, Mar 25, 2016 at 5:19 PM Samuel Van Oort <[email protected]> wrote: > Sergei, I love the visualization this provides of the pipeline DAG! > > One thing worth mentioning: I have been working on a > scalable/high-performance & parallel-aware FlowAnalyzer for pipeline stage > view that is generalized enough to assist with the data you are > visualizing. Since the rest-api portion of stage view is available as a > separate plugin from UI, I might suggest consuming that API or its > extensible Analyzer algorithm to power this view. > > Advantages: don't have to roll your own API, get a variety of metrics on > each FlowNode (pause/execution timing, status, executor used) and stage. > The algorithm also scales to complex flows with thousands of nodes and > implements caching for executed runs. Finally it supports limiting the > number of FlowNodes returned for a stage, so one can render a subset where > a stage contains a loop (or deeply nested blocks) returning thousands of > nodes. > > Thoughts? > > On Monday, March 21, 2016 at 2:52:04 AM UTC-4, Sergei Egorov wrote: >> >> Hey everyone, >> >> Yesterday I decided to publish sources for my pipeline visualization >> plugin: https://github.com/bsideup/jenkins-pipeline-view >> >> <https://lh3.googleusercontent.com/-t28IjO2m73U/Vu-VVrauoEI/AAAAAAAAAyI/tiF8TH7YVCYiqI4n78DvC0FQ21ir46LNg/s1600/screenshot.png> >> >> >> What's cool about it? >> First of all, it *can handle any graph* provided by pipeline because it >> uses very powerful *JS graph library* to position steps. >> Also, it's a *React* application, written in *ES7* (not even ES6!), with >> ImmutableJS and RxJS inside - so hipsters will be happy :D But in fact, it >> means that it's damn easy to develop this plugin and provide more >> functionality. >> I use *Webpack* to bundle everything (JS, CSS, fonts, images, SVG icons) >> in one single pipe.js file. *No Jenkins JS Modules*, no conflicts, no >> impact on others. Even CSS will not conflict because of *CSS-modules* ( >> http://glenmaddern.com/articles/css-modules ) >> All icons are SVG ones and look good on any screen, retina or not, and >> any zoom level. >> >> I use Jackson on the backend side to serialize FlowNodes and their >> actions. *Why Jackson?* Because it was much easier to implement >> serialization of selected (non-exposed) fields and class info included >> compared to Stapler. I saw something were done about classinfo in Stapler, >> but at the moment of creation of this plugin, it wasn't delivered to >> Jenkins core yet. Also, *almost none of the Pipeline actions are >> @Expose-d*. >> >> I use *gradle-jpi-plugin* instead of Maven because it's much easier to >> describe some complex build process with Gradle, especially when frontend >> build is involved. In fact, it's just one line: >> >> https://github.com/bsideup/jenkins-pipeline-view/blob/954b895b6574cdf34815ff94a4a8db3ad3811aeb/build.gradle#L61 >> >> >> Future development >> Will I continue to develop it? Definitely! Here, *at ZeroTurnaround*, we >> use Jenkins a lot, and eventually we will migrate to the pipelines, and >> proper visualization of the process is a must for us. And feel free to >> contribute as well, it's really a good chance to learn *modern JS stack* as >> well :) >> >> >> >> Best regards, >> Sergei Egorov >> > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/9b0c2cbd-e6ec-4ae0-9b51-956d92f80b1f%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-dev/9b0c2cbd-e6ec-4ae0-9b51-956d92f80b1f%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAAJdKX%3D5dTCUKvBhjxcibTf%2BEy_mwT%2B8V5LjO3%3DMuDTjE5z9Ag%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
