This post is from the XebiaLabs blog and has not been updated since the original publish date.
Dashboarding Your XL Pipeline
Today's DevOps teams like to have dashboards to monitor their processes. Dashboards provide teams a view into the state of the environment that can be very useful. Today lets look at how we can use the XL Deploy and XL Release REST APIs to make an interesting dashboard with dashing.Dashing is a Ruby application. If you already have Ruby installed on your system it is quite easy to get started. To install Dashing do the following:
- Install the gem from the command line. Make sure you have Ruby 1.9+
$ gem install dashing
- Install some additional GEMs as follows:
$ gem install rest-client
$ gem install xml-object
- Check out my xl-dashboard project from github
$ git clone https://github.com/zvercodebender/xl-dashboard.git
- Change your directory to
xl-dashboardand bundle gems
- Start the server!
$ dashing start
- Point your browser at localhost:3030 and have fun!
XldServer.rbfiles. Following the directions above should produce a dashboard similar to the one bellow: The dashing dashboard makes a nice display and is easy to configure. XebiaLabs' tools make this even easier. XL Release and XL Deploy have simple REST interfaces that make integrating with them very easy. Let's review how this dashboard is built. First we will need a dashboard definition file as follows:
data-viewtag defines the widget to be used in the dash board. You can find out more about dashing widgets at the dashing.io website. Once we have defined a dashboard we will need to create some jobs to collect information for XL Deploy and XL Release to be displayed in the dashboard. Fortunately, it is easy to interact with XL Deploy and XL Release's REST API in Ruby. Our job to collect the XL Deploy task list data is as follows:
RestClientobject to get an XML object from the XL Deploy REST API. Then we can easily parse the XML object and create a HASH with the table data. Once the HASH map is created it can be sent to our dashboard with the
send_event()method. The first parameter tells
send_event()which widget in our dashboard will render this data. The XL Release table is populated in a similar way, but this time instead of using an XML object we have a JSON object. This time note that the send_event() sends the data to the xlrdata widget in our dashboard.
Dashboards are the easiest way to find the metrics you need to run a successful business. Dig a little deeper with the experts with our webinar: "How to Build a Metric Optimized Pipeline"