[null, {"document_url": "https://xen-orchestra.com/blog/dashboard-and-dataviz/", "unformatted_src": "/blog/content/images/2015/07/global.png", "src": "https://xen-orchestra.com/blog/content/images/2015/07/global.png", "formatted_filename": "global"}, null, {"document_url": "https://xen-orchestra.com/blog/dashboard-and-dataviz/", "unformatted_src": "/blog/content/images/2015/07/sunburst-2.png", "src": "https://xen-orchestra.com/blog/content/images/2015/07/sunburst-2.png", "formatted_filename": "sunburst"}, null, {"document_url": "https://xen-orchestra.com/blog/dashboard-and-dataviz/", "unformatted_src": "/blog/content/images/2015/07/treemap.png", "src": "https://xen-orchestra.com/blog/content/images/2015/07/treemap.png", "formatted_filename": "treemap"}, null, {"document_url": "https://xen-orchestra.com/blog/dashboard-and-dataviz/", "unformatted_src": "/blog/content/images/2015/07/calheatmap.png", "src": "https://xen-orchestra.com/blog/content/images/2015/07/calheatmap.png", "formatted_filename": "calheatmap"}, null, {"document_url": "https://xen-orchestra.com/blog/dashboard-and-dataviz/", "unformatted_src": "/blog/content/images/2015/07/steam.png", "src": "https://xen-orchestra.com/blog/content/images/2015/07/steam.png", "formatted_filename": "steam"}, null, {"document_url": "https://xen-orchestra.com/blog/dashboard-and-dataviz/", "unformatted_src": "/blog/content/images/2015/07/cubism.png", "src": "https://xen-orchestra.com/blog/content/images/2015/07/cubism.png", "formatted_filename": "cubism"}, null, {"document_url": "https://xen-orchestra.com/blog/dashboard-and-dataviz/", "unformatted_src": "/blog/content/images/2015/07/force.png", "src": "https://xen-orchestra.com/blog/content/images/2015/07/force.png", "formatted_filename": "force"}, null]


Because of Xen Orchestra architecture, we can be connected to all your XenServer pools at the same time. But for displaying the data, there are some challenges, like:

Screenshots in this blog post are work in progress!


The first (main) view of the dashboard gives: Resource usage

In a big infrastructure, you may want to find easily which VM uses the most resources, like you want to know which file taking all the space on your personal computer. We are using the Sunburst tools from d3js library.

By using the XenServer hierarchy, pools (if any) then hosts, and finally VMs, we can manage to build a very powerful representation of resource usage.

Hovering the graph, you get details in the labels, here for "nfs" VM running on the host "lab1", on the pool "Lab Pool". You can see on the graph, the VM max (total) RAM:

On the other hand, you can see clearly a VM using a huge amount of RAM (in pink)! And you can see it won't fit in "Lab Pool"! Just a start!

For sure, that's just a start. We'll continue to dig into this. For example, sunbursts are cool, but we also have the Treemap possibility (here a example): But let's go further: coupling those visualizations with XenServer metrics, we could imagine, for example, to make a weekly heatmap, showing when your infrastructure is under heavy load (by choosing the metric, e.g CPU or disks write): This way, you can adapt your strategy.

What else? Well, for stacked time series, steamgraphs are also nice. You can imagine to stack multiple VMs on the same metrics in this graph: Compacted time series are also possible thanks to the Cubism lib: You'll see quickly which one (and when!) eats your SAN by selecting the "disk writes" metrics for example.

Final challenge

How to display the maximum metrics on the whole infrastructure in one graph? We got some ideas, like the force directed graph with various node in size/color, it could be very powerful: The first dashboard (+ sunburst) will be operational for the next 4.4 release this summer!

If you have other ideas or suggestions, go ahead, the comment section is here for this ;)

Dashboard and dataviz